案例:
老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