Oracle数据库备份

[size=x-large][color=red][b]Oracle数据库备份[/b][/color][/size]


a.开启本机Oracle服务

b.修改D:\oracle\product\10.2.0\db_1\NETWORK\ADMIN\tnsnames.ora文件
momo =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = XX.XX.XX.XX)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = orcl)
)
)

c. cmd--exp 用户名/密码@momo owner=用户名 file=e:\test.dmp log=e:\test.log



一、
Oracle用户的导出与导入
exp user/pwd@实例名称(远程电脑的话是你本地配置好的链接名称) file=D:\a.dmp


导出:
1、 找到你Oracle安装位置的bin目录下的 emp.exe 如: D:\oracletools\oracle\product\10.2.0\db_1\BIN
2、双击运行,输入你要导出的用户名和密码(密码不可见)
3、输入你导出文件存放的位置 如:d:\crm.dmp 【一定是bmp文件】

导入:
1、 创建用户 如:crm 【如果存在crm用户(里面含有数据等 先删除 drop user crm cascade)】
2、 赋权让其拥有导入的权限 grant dba to crm
3、 找到你Oracle安装位置的bin目录下的 imp.exe 4、 输入你要导入dmp文件的位置



二、
exp system/oracle@charge TABLE=scott.dept,scott.emp FILE=tab1.dmp
用system用户(密码是oracle)
登录charge库
将scott.dept跟scott.emp这2个表导出到tab1.dmp

imp scott/oracle@charge FILE=tab2.dmp TABLES=dept,emp
(这边应该是个逗号吧)用scott用户导入tab2.dmp文件中的dept,emp表

imp system/oracle@charge FILE=tab2.dmp TABLES=dept.emp FROMUSER=scott TOUSER=system
用scott用户登录,将tab2.dmp中的dept,emp表从scott用户导入到system用户




安装完ORACLE数据库,创建数据库后..

一 、创建空间、用户、授权

1、用户在CMD下以DBA身份登陆:

运行中输入CMD --SQLPLUS /NOLOG
SQL> CONN SYS/MANAGER AS SYSDBA (SYS/MANAGER 是指安装数据库时默认的、如果你修改了默认用户的密码 可以替换,也可以使用CONN /AS SYSDBA )
连接成功。

2、创建表空间
CREATE BIGFILE TABLESPACE 空间名
DATAFILE '(文件位置)F:\ORACLE\ORADATA\ORCL\TS_SMARTERCU_DATAFILE'
SIZE 5120M AUTOEXTEND ON NEXT 1024M MAXSIZE UNLIMITED
LOGGING EXTENT MANAGEMENT LOCAL SEGMENT SPACE MANAGEMENT AUTO;
1) DATAFILE: 表空间数据文件存放路径
2) SIZE: 起初设置为200M
3) UNIFORM: 指定区尺寸为128k,如不指定,区尺寸默认为64k
4) 空间名称histdb 与 数据文件名称 histdb.dbf 不要求相同,可随意命名。
5) AUTOEXTEND ON/OFF 表示启动/停止自动扩展表空间
6) alter database datafile ' D:\oracle\product\10.2.0\oradata\orcl\histdb.dbf ' resize 500m; //手动修改数据文件大小为500M
PS: 删除表空间
DROP TABLESPACE ITTBANK INCLUDING CONTENTS AND DATAFILES;

3、创建用户并指定表空间
CREATE USER SMARTERCU (用户)PROFILE DEFAULT IDENTIFIED BY SMARTERCU(密码) DEFAULT TABLESPACE TS_SMARTERCU(指向的空间名)
TEMPORARY TABLESPACE TEMP ACCOUNT UNLOCK;
PS:删除用户
drop user smartercu(用户名) cascade ; 彻底删除该用户

4.授权CONECT
//DBA: 拥有全部特权,是系统最高权限,只有DBA才可以创建数据库结构。
//RESOURCE:拥有RESOURCE权限的用户只可以创建实体,不可以创建数据库结构。
//CONNECT:拥有CONNECT权限的用户只可以登录ORACLE,不可以创建实体,不可以创建数据库结构。
//对于普通用户:授予CONNECT, RESOURCE权限。
//对于DBA管理用户:授予CONNECT,RESOURCE, DBA权限。
EX:GRANT DBA TO SMARTERCU(授权用户);GRANT CONNECT TO SMARTERCU(授权用户;
ps: 撤权
revoke 权限 from 用户名;

5:查看该数据库中所有的表空间情况
select tablespace_name, file_id, file_name,round(bytes/(1024*1024),0) total_spacefrom dba_data_files
order by tablespace_name;

二 :导入外部的数据库备份文件到该用户以及本地导出备份

a、EXP和IMP是客户端工具程序,它们既可以在客户端使用,也可以在服务端使用。
b、EXPDP和IMPDP是服务端的工具程序,他们只能在ORACLE服务端使用,不能在客户端使用。(推荐 Oracle 10g开始提供了称为数据泵新的工具expdp/impdp,
它为Oracle数据提供高速并行及大数据的迁移。使用expdp/impdp以前需要在数据库中创建一个Directory
create directory dump_test as '/u01/oracle10g';
grant read, write on directory dump_test to piner )
上面这两种是常见的oracle 备份的两种配对方法,不能交叉使用

1、备份数据 (利用数据泵的方式)
DUMPFILE:用于指定转储文件的名称,默认名称为expdat.dmp
DIRECTORY:指定转储文件和日志文件所在的目录 建立目录:CREATE DIRECTORY dump as ‘d:dump’; 查询创建了那些子目录:SELECT * FROM dba_directories;
FULL:指定数据库模式导出,默认为N
HELP:指定是否显示EXPDP命令行选项的帮助信息,默认为N,当设置为Y时,会显示导出选项的帮助信息.
LOGFILE:指定导出日志文件文件的名称,默认名称为export.log
NETWORK_LINK:指定数据库链名,如果要将远程数据库对象导出到本地例程的转储文件中,必须设置该选项.
NOLOGFILE:该选项用于指定禁止生成导出日志文件,默认值为N.
SCHEMAS:该方案用于指定执行方案模式导出,默认为当前用户方案.
VERSION:指定被导出对象的数据库版本,默认值为COMPATIBLE. (如果是高版本到低版本 推荐加版本号。 imp 和exp 好像没有袄。)

1)按用户导
expdp scott/tiger@orcl schemas=scott dumpfile=expdp.dmp DIRECTORY=dpdata1;
2)并行进程parallel
expdp scott/tiger@orcl directory=dpdata1 dumpfile=scott3.dmp parallel=40 job_name=scott3
3)按表名导
expdp scott/tiger@orcl TABLES=emp,dept dumpfile=expdp.dmp DIRECTORY=dpdata1;
4)按查询条件导
expdp scott/tiger@orcl directory=dpdata1 dumpfile=expdp.dmp Tables=emp query='WHERE deptno=20';
5)按表空间导
expdp system/manager DIRECTORY=dpdata1 DUMPFILE=tablespace.dmp TABLESPACES=temp,example;
6)导整个数据库
expdp system/manager DIRECTORY=dpdata1 DUMPFILE=full.dmp FULL=y;

2、还原数据

1)导到指定用户下
impdp scott/tiger DIRECTORY=dpdata1 DUMPFILE=expdp.dmp SCHEMAS=scott;
2)改变表的owner 也就是将scott 用户下的导入到system用户中
impdp system/manager DIRECTORY=dpdata1 DUMPFILE=expdp.dmp TABLES=scott.dept REMAP_SCHEMA=scott:system;
3)导入表空间
impdp system/manager DIRECTORY=dpdata1 DUMPFILE=tablespace.dmp TABLESPACES=example;
4)导入数据库
impdb system/manager DIRECTORY=dump_dir DUMPFILE=full.dmp FULL=y;

3、备份还原数据 (EXP/IMP的)
exp sa/topsci@jjdb file= owner=sa
imp sa/topsci@orcl file =d:\jjdb-5-20121122.DMP log=d:\201211242202.log full=y
exp:
USERID 用户名/口令
FULL 导出整个文件 (N)
BUFFER 数据缓冲区的大小
OWNER 所有者用户名列表
FILE 输出文件 (EXPDAT.DMP)
TABLES 表名列表
COMPRESS 导入一个范围 (Y)
RECORDLENGTH IO 记录的长度
GRANTS 导出权限 (Y)
INCTYPE 增量导出类型
INDEXES 导出索引 (Y)
RECORD 跟踪增量导出 (Y)
ROWS 导出数据行 (Y)
PARFILE 参数文件名
CONSTRAINTS 导出限制 (Y)
CONSISTENT 交叉表一致性
LOG 屏幕输出的日志文件
STATISTICS 分析对象 (ESTIMATE)
DIRECT 直接路径 (N)
TRIGGERS 导出触发器 (Y)
FEEDBACK 显示每 x 行 (0) 的进度
FILESIZE 各转储文件的最大尺寸
QUERY 选定导出表子集的子句
imp:
USERID 用户名/口令
FULL 导入整个文件 (N)
BUFFER 数据缓冲区大小
FROMUSER 所有人用户名列表
FILE 输入文件 (EXPDAT.DMP)
TOUSER 用户名列表
SHOW 只列出文件内容 (N)
TABLES 表名列表
IGNORE 忽略创建错误 (N)
RECORDLENGTH IO 记录的长度
GRANTS 导入权限 (Y)
INCTYPE 增量导入类型
INDEXES 导入索引 (Y)
COMMIT 提交数组插入 (N)
ROWS 导入数据行 (Y)
PARFILE 参数文件名
LOG 屏幕输出的日志文件
CONSTRAINTS 导入限制 (Y)
DESTROY 覆盖表空间数据文件 (N)
INDEXFILE 将表/索引信息写入指定的文件
SKIP_UNUSABLE_INDEXES 跳过不可用索引的维护 (N)
ANALYZE 执行转储文件中的 ANALYZE 语句 (Y)
FEEDBACK 显示每 x 行 (0) 的进度
TOID_NOVALIDATE 跳过指定类型 id 的校验
FILESIZE 各转储文件的最大尺寸
RECALCULATE_STATISTICS 重新计算统计值 (N)

三:配置plsql 连接数据库

1、手工配置:安装目录:F:\app\Administrator\product\11.2.0\dbhome_1\NETWORK\ADMIN 下面有三个文件
tnsnames.ora sqlnet.ora listener.ora
首先修改 tnsnames.ora
添加连接指向:
ORCL =(注意前面不能有空格袄)
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = localhost(也可以是ip、计算机名))(PORT = 1521(端口默认的)))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = ORCL(数据库SID 一般数据库名))
)
)
修改listener.ora
添加监听
LISTENER = (注意前面不能有空格袄)
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = localhost(也可以是ip、计算机名))(PORT = 1521))
)
)
启动服务 和监听
一般就连接成功了。
2:利用oracle中的net manager 工具配置

赠送一个好东西 如果误删除一些数据时 可以利用闪回移动表找回某个时间段的数据 只支持delete
(truncate的数据是不能恢复的,所以以后可要小心袄)
1、开启闪回移动表
alter table 表名 enable row movement;
2:闪回 可以找回某个时间点某个表 delete 删除掉的数据(truncate的是不可以的)
flashback table 表名 to timestamp to_timestamp('2012-11-28 09:00:00','yyyy-MM-dd hh24:mi:ss')
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值