oracle数据库迁移过程中的常见问题及常见操作命令
本文地址:http://www.52php.cn/article/p-ypmuxnnc-bpt.html 数据库导出: 使用sysdba 用户执行
create or replace directory expdir as 'E:bak';
grant read,write on directory expdir to rm;
使用cmd命令行执行
expdp rm/xxx@orcl directory=expdir full=y parallel=4 logfile=rmExp.log dumpfile=rm.dmp;
1 ORA-39002,ORA-39070,ORA-39087 目录名无效 GRANT READ,WRITE ON DIRECTORY EXPDIR to rm;
否则执行 create or replace directory expdir as 'E:bak';
2 ORA-12154:TNS:无法解析指定的连接标识符 UDE-12154:operation generated ORACLE error 12154
ORA-12154:TNS:无法解析指定的连接标识符
先 set oracle_sid=orcl
然后再imp xxx/xxx 后面不能带”@” 才能导入 3 expdp报错ORA-31631、ORA-39161 权限不足 ORA-31631: privileges are required
ORA-39161: Full database jobs require privileges
从报错提示信息来看,是权限不足造成的。当执行expdp操作指定remap_schema参数时,需要具备exp_full_database权限。给rm用户赋予exp_full_database权限。 grant exp_full_database to rm;
导入时报错 ORA-31631: privileges are required
ORA-39122: Unprivileged users may not perform REMAP_SCHEMA remappings.
同样处理方法,授权imp_full_database grant imp_full_database to rm;
IMP-00010: 不是有效的导出文件,头部验证失败
IMP-00000: 未成功终止导入
用notepad++工具打开dmp文件,可以看到头部信息 --TEXPORT:V11.01.00,即为源数据库的版本号,将其修改为目的数据库的版本号,如10.02.01。 常见sql语句 select SEGMENT_NAME,TABLESPACE_NAME,sum(BYTES/1024/1024)||'M' from USER_extents where SEGMENT_TYPE='TABLE' group by SEGMENT_NAME,TABLESPACE_NAME
查所有的表 select SEGMENT_NAME,sum(BYTES/1024/1024)||'M' from dba_extents where SEGMENT_TYPE='TABLE' group by SEGMENT_NAME,TABLESPACE_NAME
2 查看所有表空间对应的数据文件 select tablespace_name,file_name from dba_data_files;
3 修改数据文件大小 alter database datafile 'h:appadministratororadataorclusers01.dbf' resize 10240M;
4.查询数据库当前进程的连接数: select count(*) from v$process;
5.查看数据库当前会话的连接数: select count(*) from v$session;
6.查看数据库的并发连接数: select count(*) from v$session where status='ACTIVE';
7.查看当前数据库建立的会话情况: select sid,serial#,username,program,machine,status from v$session;
8.查询数据库允许的最大连接数: select value from v$parameter where name = 'processes';
或者: show parameter processes;
修改数据库允许的最大连接数: alter system set processes = 300 scope = spfile;
(需要重启数据库才能实现连接数的修改) 9.查看当前有哪些用户正在使用数据: select osuser,a.username,cpu_time/executions/1000000||'s',sql_fulltext,machine from v$session a,v$sqlarea b where a.sql_address = b.address order by cpu_time/executions desc;
其他 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |