1、检查linux服务器存储空间(oracle用户登录)
df –h 确保存储空间足够
2、创建备份存放的目录,或选择一个已有的目录
如:在/oracle下创建一个backup目录
mkdir backup
注意目录权限和所有者、所有组
更改读写权限命令
chmod –R 755 backup/
更改所有组命令
chown –R oracle:oinstall/backup
3、在toad里指定备份目录的路径及控制文件权限
–查询所有目录信息(查看有无指定mydir目录,创建之后再查看成功与否)
SELECT * FROM DBA_DIRECTORIES;
–创建目录
CREATE DIRECTORY MYDIR AS ‘/oracle/backup’;
GRANT READ,WRITE ON DIRECTORY MYDIR TO TEST;(使用sys 用户时无需操作)
(必要的话删除mydir目录,命令:drop directory mydir)
给mydir文件对象授权
grant read,write on directory mydir to public;
用户授权数据文件导出
grant exp_full_database to esb;
操作完成收回权限;
revoke exp_full_database to esb;
用户授权数据文件导入
Grant imp_full_database to esb;
4.导出
export ORACLE_SID=cbsdb;
export NLS_LANG=American_America.AL32UTF8;
expdp sys/sys directory=mydir full=y dumpfile=cbsdb_1011.dmp logfile=cbsdb_1011.log;
5.导入
export ORACLE_SID=cbsdb
export NLS_LANG=American_America.AL32UTF8
impdp sys/sys directory=mydir dumpfile=cbsdb_1011.dmp
6.单个用户导出数据
数据库单用户导出
expdp ‘/ as sysdba’ directory=mydir dumpfile=sch_1024.dmp logfile=sch_1024.log schemas=fin,sch,ensemble,teller9;
导出数据用户自己后边定义
7.数据库分区导出
expdp ‘/ as sysdba’ directory=MYDIR dumpfile= rb_tran_hist.dmp logfile= rb_tran_hist.log tables =ENSEMBLE.RB_TRAN_HIST:RB_TRAN_HIST_P01 ;
8.导入到新用户中
导入新用户: REMAP_SCHEMA=原先用户:新用户
impdp sys/sys directory=mydir dumpfile=NL_UPRIGHT20180815.dmp REMAP_SCHEMA=NL_UPRIGHT:SN_UPRIGHT;
9、存储过程导出和导入
在数据库服务器上新建test.par文件 ,需要导出PROCEDURE FUNCTION PACKAGE 根据需要自行修改
vi test.par
INCLUDE=PROCEDURE:"IN ('P_TEST_LAST_DDL')"
INCLUDE=FUNCTION:"IN ('F_GET_DATE')"
INCLUDE=PACKAGE:"IN ('PKG_TEST_DEMO')"
SCHEMAS=CORE
导出命令:
expdp sys/sys directory=mydir full=y dumpfile=cbsdb_1011.dmp logfile=cbsdb_1011.log parfile=test.par
导入命令: PROCEDURE FUNCTION PACKAGE 根据需要自行修改
impdp “’/ as sysdba’” directory=home_dir logfile=impdp.log dumpfile=test.dmp schemas=hdd include=procedure:"=‘TEST’" TABLE_EXISTS_ACTION=replace
目前尝试多次oracle数据库不支持已经存在的存储过程导入,导入之前需要在导入用户下先删除本次导入的存储过程。
DROP package 过程名;
报错
说明test.par 文件内容错误,未找到对应的存储过程
说明存储过程名称已经存在,必须先删除在新建
修改用户密码生效时间为无限期
ALTER PROFILE DEFAULT LIMIT PASSWORD_LIFE_TIME UNLIMITED;
Sga_targer 自动管理内存时使用,sga_target 是当前已分配的最大sga
alter system set sga_target=6G scope=spfile;
文档在逐次的尝试中不断总结更新而来,对自己工作技能的一定总结,不喜勿喷!