oracle数据库备份、还原命令及常见问题(待补充)
1、oracle数据库的备份:先查空表——将结果全选复制为insert语句——将语句执行后导出
先select 'alter table '||table_name||' allocate extent;' from user_tables where num_rows=0;把空表查出来,再执行
备份命令(在cmd中运行):EXP 用户名1/密码@实例名 OWNER=用户名1 file=D:/orcldata/xxxx.dmp 导出命令不要带分号
2、oracle数据库的还原:
1.打开cmd
2.执行语句,执行语句后,下面的3、4、5、6步骤在sqlplus中执行
sqlplus sys/zfsqa as sysdba;
或sqlplus / as sysdba;
3.如果有表空间了删除以前的数据表空间
DROP TABLESPACE 表空间名 INCLUDING CONTENTS AND DATAFILES;
如果没有就创建表空间
create tablespace 表空间名 datafile 'E:\orcldata\表空间.dbf' size 2000m;
4.创建新的数据表空间用户
create user 用户2 identified by 密码 default tablespace 表空间名;
如果用户已存在:
DROP USER C##WEB_CHENZHOU CASCADE;
DROP USER web_xm_new CASCADE;
5. 授权用户
grant connect,resource,dba to 用户2;
6.退出数据库连接
exit;
7.还原数据库(在cmd中运行)
imp 用户2/密码@实例名 file="E:\orcldata\xxxxx.dmp" fromuser=用户1 touser=用户2 ignore=y DESTROY=Y ----从现场数据库的用户到我这边数据库的用户还原数据库后要修改配置文件中的用户名ximeng_pt1和密码123456
说明:工作中在还原12c的数据库时遇到过一个问题:报错
IMP-00002: 无法打开 E:\app\ORsystem\product\12.2.0\dbhome_1D:\oracldata\ONE_WINDOW_ACCEPTED_V1.dmp 进行读取
导入文件: EXPDAT.DMP>
解决办法是把file路径的引号去掉就可以了
补充:----sqlplus 中查找所有的用户名称
select * from all_users;----查看所有用户(当创建表空间下的用户时,提示重复或冲突,查看所有用户的命令)
select username,default_tablespace from dba_users;-----查看所有用户及用户所属表空间
select username from dba_users;
select instance_name from v$instance;查找实例名称
3、查看oracle数据库的连接数:
select count(*) from v$session; ----查看当前连接数
select value from v$parameter where name = 'sessions'; --取得会话数的上限。
select value from v$parameter where name = 'processes' ---查看数据库允许的最大连接数(进程数的上限)
alter system set processes = 300 scope = spfile; ---修改最大连接数
select count(*) from v$process; --取得数据库目前的进程数。