chenyanbin

备份数据库

创建备份目录(用sys账号),若已创建备份目录,此步可忽略

create directory db_bak as \'D:\ ECIMS_DB\'
--查看创建的目录
select * from dba_directories

--删除已创建的目录
drop directory DB_BAK

格式:
drop directory 目录名

备份(导出)数据库(cmd状态下)

expdp XXX/XXX@XXX schemas=XXX dumpfile=XXX_20181130.dump logfile=XXX_20181130.LOG DIRECTORY=DB_BAK

语法:
expdp 用户名/密码@实例名 schemas=用户名 dumpfile=导出dump文件名.dump logfile=导出日志文件名.LOG DIRECTORY=DB_BAK

导入数据库

步骤一、导入前,先删除账号(plsql状态下)

drop user XXX cascade;

格式:
drop user 用户名 cascade;

注:若删除不掉,需先删除所有会话!!!

select username, sid, serial# from v$session where username=\'XXX\' --找到用户SESSION

格式:
select username, sid, serial# from v$session where username=\'用户名\' --找到用户SESSION

注:若有多条会话,需批量删除

alter system kill session \'249,57377\' --杀掉用户SESSION \'sid,serial#\'
alter system kill session \'250,57376\' --杀掉用户SESSION \'sid,serial#\'
alter system kill session \'251,57375\' --杀掉用户SESSION \'sid,serial#\'

格式:
alter system kill session \'sid,serial\' 

步骤二、创建账号,赋予权限(plsql状态下)

create user XXX identified by XXX default tablespace USERS
temporary tablespace TEMP
profile DEFAULT;

-- Grant/Revoke role privileges 
grant connect to XXX;
grant dba to XXX;
grant resource to XXX;

-- Grant/Revoke system privileges 
grant alter any sequence to XXX;
grant alter any table to XXX;
grant alter any trigger to XXX;
grant change notification to XXX;
grant create any procedure to XXX;
grant create any sequence to XXX;
grant create any table to XXX;
grant create any type to XXX;
grant create any view to XXX;
grant unlimited tablespace to XXX;

--------------------------------------------------------------
格式:
create user 用户名 identified by 密码 default tablespace USERS
temporary tablespace TEMP
profile DEFAULT;

-- Grant/Revoke role privileges 
grant connect to 用户名;
grant dba to 用户名;
grant resource to 用户名;

-- Grant/Revoke system privileges 
grant alter any sequence to 用户名;
grant alter any table to 用户名;
grant alter any trigger to 用户名;
grant change notification to 用户名;
grant create any procedure to 用户名;
grant create any sequence to 用户名;
grant create any table to 用户名;
grant create any type to 用户名;
grant create any view to 用户名;
grant unlimited tablespace to 用户名;

步骤三、导入数据(cmd状态下)

impdp XXX/XXX DIRECTORY=db_bak DUMPFILE=XXX.dump logfile=XXX.log REMAP_SCHEMA=XXX:XXX remap_tablespace=XXX:XXX

格式
impdp 用户名/密码 DIRECTORY=db_bak DUMPFILE=备份文件名.dump logfile=备份日志文件名.log REMAP_SCHEMA=导出用户名:导入用户名 remap_tablespace=导出表空间:导入表空间

方式二备份及导入(推荐)

--备份数据库
expdp YZJ_TEST/YZJ_TEST@ECIMS schemas=YZJ_TEST dumpfile=YZJ_TEST_20181130.dump logfile=YZJ_TEST_20181130.LOG DIRECTORY=DB_BAK
--删除帐号
drop user YZJ_TEST cascade;
--查看账号连接数量
select username, sid, serial# from v$session where username=\'YZJ_TEST\' --找到用户SESSION
alter system kill session \'249,57377\' --杀掉用户SESSION \'sid,serial#\'

/*第1步:创建临时表空间  */
create temporary tablespace DMIS_STD_TEMP  
tempfile \'F:\app\Administrator\oradata\ECIMS\DMIS_STD_TEMP.dbf\' 
size 50m  
autoextend on  
next 50m maxsize 20480m  
extent management local;  
 
/*第2步:创建数据表空间  */
create tablespace DMIS_STD_DATA  
logging  
datafile \'F:\app\Administrator\oradata\ECIMS\DMIS_STD_DATA.dbf\' 
size 50m  
autoextend on  
next 50m maxsize 20480m  
extent management local; 

/*第3步:创建用户并指定表空间  */
create user DMIS_STD identified by DMIS_STD
default tablespace DMIS_STD_DATA  
temporary tablespace DMIS_STD_TEMP; 


3、导入语句按下面的方式
impdp system/eMarine123 DIRECTORY=db_bak DUMPFILE=ERIM_PROD.dump logfile=ERIM_PROD_imp.log REMAP_SCHEMA=ERIM_PROD:<新用户名> remap_tablespace=ERIM_PROD:<新表空间名>

注意事项!!

注:若是新数据库,需要执行第2、3步骤,旧数据库无需执行!!!!

分类:

技术点:

相关文章:

  • 2021-12-05
  • 2021-12-29
  • 2022-01-09
  • 2022-12-23
  • 2021-12-10
  • 2021-05-14
  • 2021-11-16
  • 2022-12-23
猜你喜欢
  • 2021-12-04
  • 2021-06-06
  • 2021-12-04
  • 2021-12-04
  • 2021-12-04
相关资源
相似解决方案