如何备份服务器上的ORACLE数据库到本地电脑

如何备份服务器上的ORACLE数据库到本地电脑,第1张

用exp命令即可完成,但要看具体的备份方式。
1 导出一个完整数据
exp system/manager file=bible_db log=dible_db full=y

2 导出数据库定义而不导出数据
exp system/manager file=bible_db log=dible_db full=y rows=n

3 导出一个或一组指定用户所属的全部表、索引和其他对象
exp system/manager file=seapark log=seapark owner=seapark
exp system/manager file=seapark log=seapark owner=(seapark,amy,amyc,harold)
注意:在导出用户时,尽管已经得到了这个用户的所有对象,但是还是不能得到这些对象引用的任何同义词。解决方法是用以下的SQLPlus命令创建一个脚本文件,运行这个脚本文件可以获得一个重建seapark所属对象的全部公共同义词的可执行脚本,然后在目标数据库上运行该脚本就可重建同义词了。

SET LINESIZE 132
SET PAGESIZE 0
SET TRIMSPOOL ON
SPOOL c:\seaparksyn
SELECT 'Create public synonym '||synonym_name
||' for '||table_owner||''||table_name||';'
FROM dba_synonyms
WHERE table_owner = 'SEAPARK' AND owner = 'PUBLIC';
SPOOL OFF

4 导出一个或多个指定表
exp seapark/seapark file=tank log=tank tables=tank
exp system/manager file=tank log=tank tables=seaparktank
exp system/manager file=tank log=tank tables=(seaparktank,amyartist)

5 估计导出文件的大小
全部表总字节数:
SELECT sum(bytes)
FROM dba_segments
WHERE segment_type = 'TABLE';

seapark用户所属表的总字节数:
SELECT sum(bytes)
FROM dba_segments
WHERE owner = 'SEAPARK'
AND segment_type = 'TABLE';

seapark用户下的aquatic_animal表的字节数:
SELECT sum(bytes)
FROM dba_segments
WHERE owner = 'SEAPARK'
AND segment_type = 'TABLE'
AND segment_name = 'AQUATIC_ANIMAL';

6 导出表数据的子集(oracle8i以上)
NT系统:

exp system/manager query='Where salad_type='FRUIT'' tables=amysalad_type
file=fruit log=fruit
UNIX系统:

exp system/manager query=\"Where salad_type=\'FRUIT\'\" tables=amysalad_type
file=fruit log=fruit

7 用多个文件分割一个导出文件
exp system/manager
file=(paycheck_1,paycheck_2,paycheck_3,paycheck_4)
log=paycheck, filesize=1G tables=hrpaycheck

8 使用参数文件
exp system/manager parfile=bible_tablespar
bible_tablespar参数文件:

#Export the sample tables used for the Oracle8i Database Administrator's Bible
file=bible_tables
log=bible_tables
tables=(
amyartist
amybooks
seaparkcheckup
seaparkitems
)

9 增量导出
“完全”增量导出(complete),即备份整个数据库
exp system/manager inctype=complete file=990702dmp
“增量型”增量导出(incremental),即备份上一次备份后改变的数据
exp system/manager inctype=incremental file=990702dmp
“累计型”增量导出(cumulative),即备份上一次“完全”导出之后改变的数据
exp system/manager inctype=cumulative file=990702dmp

你导出工具的客户端和服务器端的数据库版本不一致,你的客户端为11g,而服务器则只是10g的,没法兼容,所以导不了数据。
建议换一个客户端(重装客户端的软件,或者找一个别人的客户端进行导,或者直接进入服务器,使用服务器机器上的oracle进行导出)
补充回答:Toad for Oracle没有使用过,不过刚才百度了一下,有其他的版本。

1、用exp,然后在另一个数据库中imp。不适用于从低版本到高版本的导入。
2、在一个数据库中,用PL/SQL从表中导出数据,可生成SQL脚本或文本数据;然后在用PL/SQL连上另一数据库进行导入数据。
3、建立dblink,然后 insert table
select from table@db1;

从服务器将ORACLE数据库导出和导入本地oracle数据库中的方法
一:将服务器上的ORACLE数据库导入到本地机子上;
具体方法:
在CMD模式下执行以下命令
exp username/password@服务器端数据库ID file=c:/文件名dmp
例如下面:
exp djyy/djyy@zhwx file=c:/djyy20090921dmp
exp wxzd/wxzd@zhwx file=c:/wxzd20090921dmp
二:建立本地oracle数据库
具体方法:
点击开始->程序->Oracle - OraDb10g_home1->配置和移植工具->Database Configuration Assistant

运行后点击下一步,选择创建数据库->next->选择一般用途->填写自己的数据库名->next-->填写口令,选择同一口令吧,当然你也可以为每个用户填写不同的口令,以后基本上默认安装吧。安装完成后退出即可。
三:建立用户,并赋予DBA权限
具体方法:
在刚建立的本地数据库中,用DBA的权限账户进入,然后建立自己的用户,并赋予DBA等权限;
具体实例代码:
1 SQL> conn sys/change_on_install as sysdba;
2 已连接。
3 SQL> create user username identified by password;
4 users;
5
6 用户已创建。
7 SQL> grant create session,create table,create view to username
8 授权成功。
9 SQL>grant DBA to uername;
10 授权成功。
四:导入oracle数据库
具体方法:
在CMD模式下执行以下命令
imp 用户/密码 file=dmp commit=y full=y

远程Oracle数据库导出到本地用exp命令。

导出一个完整数据库:

1、win键+R键,输入cmd,打开命令提示符。

2、执行

exp 用户名/密码@实例名 file=导出路径\文件名 log=导出路径\日志名 full=y


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zz/13514551.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-08-23
下一篇 2023-08-23

发表评论

登录后才能评论

评论列表(0条)

保存