Linux下Oracle移植数据

时间:2022-12-07 06:34:09

案例:

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