将A库表空间x导入到B库的表空间y,以下内容为个人归纳,如有不对的地方,请在评论区留下您的见解
1. 了解oracle的逻辑结构。
2. oracle系统表表名常见标记:
dba_:全库的
all_:当前用户可见的
user_:当前用户所有的(隶属于当前用户的)
_privs:xx的权限
_tables:xx下的表
sys_:系统的
role:角色
3. 常用查询:
1).查询当前用户所在的表空间
select username,default_tablespace from dba_users where username='用户名';
2).查看当前用户的表空间的权限:
select * from session_privs;
3). 查看当前用户的所有表
select * from user_tables;
4).查看当前用户的系统权限和表级权限
select * from user_sys_privs;
select * from user_tab_privs;
4.导入 导出的常用命令导出:
exp 用户名/密码@数据库 file=d:\文件位置\back.dmp full=y ignore=y
导入:
imp 用户名/密码@数据库 file=d:\文件位置\back.dmp
5.导入时碰到的错误
ORA-00959: 表空间 'XXXXXXXXXXX' 不存在。
原因:这些表中含有clob或blob类型的字段 。 解决方案1:创建‘XXXXXXXXX’的同名表空间。解决方案2:将丢失的表手动导入
6.tnsnames相关问题
tnsnames.ora 用在oracle client端,用户配置连接数据库的别名参数,用于记录客户端访问数据库的本地配置,其实就是定义网络服务.
测试数据库服务的命令:
例:tnsping 192.168.1.123:1521/orcl
对应:tnsping命令 IP地址 端口号 数据库服务名称
如果能够ping通,则说明客户端能解析listener的机器名,而且lister也已经启动,但是并不能说明数据库已经打开,而且tsnping的过程与真正客户端连接的过程也不一致。但是如果不能用tnsping通,则肯定连接不到数据库。
tnsnames.ora文件位置:\oracle\user\product\11.1.0\db_1\NETWORK\ADMIN\tnsnames.ora
7.其他
查看表结构:desc表名(命令)