红联Linux门户
Linux帮助

Linux下Oracle移植数据

发布时间:2016-07-06 10:11:27来源:blog.csdn.net/zengmingen作者:松门一枝花
案例:
老LTESQM数据库下的toolbox用户数据移植到  新LTESQM数据库下的 toolbox 用户。
新LTESQM数据库下还没有toolbox这个用户
 
开始:
1、查看老LTESQM下toolbox的权限
用oracle数据库dba角色登录,查看用户toolbox的sql。
使用sqldeveloper.exe工具,得到toolbox的sql为:
-- USER SQL  
ALTER USER "TOOLBOX"  
DEFAULT TABLESPACE "SQMDB"  
TEMPORARY TABLESPACE "SQMDB_TEMP"  
ACCOUNT UNLOCK ;  
-- QUOTAS  
-- ROLES  
ALTER USER "TOOLBOX" DEFAULT ROLE "DBA","MGMT_USER","AQ_ADMINISTRATOR_ROLE","CONNECT","RESOURCE";  
-- SYSTEM PRIVILEGES  
 
2、在新LETSQM库里创建用户toolbox
create user toolbox identified by ******;  
-- USER SQL  
ALTER USER "TOOLBOX"  
DEFAULT TABLESPACE "SQMDB"  
TEMPORARY TABLESPACE "SQMDB_TEMP"  
ACCOUNT UNLOCK ;  
grant create session,create table,create view,unlimited tablespace to toolbox;  
grant "DBA","MGMT_USER","AQ_ADMINISTRATOR_ROLE","CONNECT","RESOURCE" to toolbox;  
 
3、登录Linux
此处略
 
4、用Oracle账号登录
su - oralce
解释:中间的"-"不能少,如果没有“-”是不会提示输入密码,如果没提示输入oracle用户的密码,那么就不是登录,不能执行oracle的命令,如果第一遍没有,再试一遍就有了。
 
5、查看当前所在SID是不是要导出的
命令:echo $ORACLE_SID
 
6、看设置的编码是否一致
如果不一致会报错
导出时报警告:EXP-00091: Exporting questionable statistics
导致中文列导入时乱码,影响中文内容
echo $NLS_LANG  查看oracle设置的环境变量编码
select userenv('language') from dual  查看当前用户的编码
假设查出来为:AMERICAN_AMERICA.ZHS16GBK
如果不一致,要修改为一致:
export NLS_LANG=AMERICAN_AMERICA.ZHS16GBK
 
7、在Oracle用户的home目录下新建文件夹用于备份数据
mkdir  文件名
 
8、暂停正在使用老LTESQM数据库下的toolbox用户数据的系统,以免在导出时有数据在入库,影响导出速度。
 
9、使用导出数据命令导出数据
exp userid=toolbox/*****@ip地址:端口/sqmmtold file=/要备份到的文件路径/备份的文件名.dmp  log=放日志的目录/exp.log
 
如果是备份表,用下面语句:
exp userid=toolbox/*****@ip:端口/sqmmtold file=toolbox_old20160307.dmp tables=
\(RPT_SFPPQH_P01,RPT_OMC_KPI_MUTU_P01,RPT_MONILUCE_P04,RPT_MONILUCE_P03,RPT_MONILUCE_2_P08,RPT_MONILUCE_2_P07
\
)  log=放日志的目录/exp.log
注意:括号要用  \  转义  
 
10、切换SID到要导入数据的SID下
export ORACLE_SID=sqmmt
 
11、备份sqmmt,防止导入失败可以还原
 
12、使用导入命令导入数据
imp userid=toolbox/*****@ip地址:端口/sqmmtold full=y file=/备份到的文件路径/备份的文件名.dmp log=放日志的目录/imp.log
 
本文永久更新地址:http://www.linuxdiyf.com/linux/22114.html