ORACLE数据库如何备份数据最好是备份哪些东西(oracle怎么备份数据库)

ORACLE数据库如何备份数据最好是备份哪些东西(oracle怎么备份数据库),第1张

Oracle数据的三种标准的备份方法:

1导出/导入(EXP/IMP)。

2热备份。

3冷备份。

注释:导出备件是一种逻辑备份,冷备份和热备份是物理备份。

一、导出/导入(Export/Import)

利用Export可将数据从数据库中提取出来,利用Import则可将提取出来的数据送回到Oracle数据库中去。

1、简单导出数据(Export)和导入数据(Import)

Oracle支持三种方式类型的输出:

(1)、表方式(T方式),将指定表的数据导出。

(2)、用户方式(U方式),将指定用户的所有对象及数据导出。

(3)、全库方式(Full方式),瘵数据库中的所有对象导出。

数据导入(Import)的过程是数据导出(Export)的逆过程,分别将数据文件导入数据库和将数据库数据导出到数据文件。

2、增量导出/导入

增量导出是一种常用的数据备份方法,它只能对整个数据库来实施,并且必须作为SYSTEM来导出。在进行此种导出时,系统不要求回答任何问题。导出文件名缺省为exportdmp,如果不希望自己的输出文件定名为exportdmp,必须在命令行中指出要用的文件名。

增量导出包括三种类型:

(1)、“完全”增量导出(Complete)

即备份三个数据库,比如:

expsystem/==040731dmp

(2)、“增量型”增量导出

备份上一次备份后改变的数据,比如:

expsystem/==040731dmp

(3)、“累积型”增量导出

累计型导出方式是导出自上次“完全”导出之后数据库中变化了的信息。比如:

expsystem/==040731dmp

数据库管理员可以排定一个备份日程表,用数据导出的三个不同方式合理高效的完成。

比如数据库的被封任务可以做如下安排:

星期一:完全备份(A)

星期二:增量导出(B)

星期三:增量导出(C)

星期四:增量导出(D)

星期五:累计导出(E)

星期六:增量导出(F)

星期日:增量导出(G)

如果在星期日,数据库遭到意外破坏,数据库管理员可按一下步骤来回复数据库:

第一步:用命令重新生成数据库结构;

第二步:创建一个足够大的附加回滚。

第三步:完全增量导入A:

impsystem/=RESTOREFULL=yFILE=A

第四步:累计增量导入E:

impsystem/=RESTOREFULL=YFILE=E

第五步:最近增量导入F:

impsystem/=RESTOREFULL=YFILE=F

二、冷备份

冷备份发生在数据库已经正常关闭的情况下,当正常关闭时会提供给我们一个完整的数据库。冷备份时将关键性文件拷贝到另外的位置的一种说法。对于备份Oracle信息而言,冷备份时最快和最安全的方法。冷备份的优点是:

1、是非常快速的备份方法(只需拷文件)

2、容易归档(简单拷贝即可)

3、容易恢复到某个时间点上(只需将文件再拷贝回去)

4、能与归档方法相结合,做数据库“最佳状态”的恢复。

5、低度维护,高度安全。

但冷备份也有如下不足:

1、单独使用时,只能提供到“某一时间点上”的恢复。

2、再实施备份的全过程中,数据库必须要作备份而不能作其他工作。也就是说,在冷备份过程中,数据库必须是关闭状态。

3、若磁盘空间有限,只能拷贝到磁带等其他外部存储设备上,速度会很慢。

4、不能按表或按用户恢复。

如果可能的话(主要看效率),应将信息备份到磁盘上,然后启动数据库(使用户可以工作)并将备份的信息拷贝到磁带上(拷贝的同时,数据库也可以工作)。冷备份中必须拷贝的文件包括:

1、所有数据文件

2、所有控制文件

3、所有联机REDOLOG文件

4、Initora文件(可选)

值得注意的使冷备份必须在数据库关闭的情况下进行,当数据库处于打开状态时,执行数据库文件系统备份是无效的。

下面是作冷备份的完整例子。

(1)关闭数据库

sqlplus/nolog

sql

sql

(2)用拷贝命令备份全部的时间文件、重做日志文件、控制文件、初始化参数文件

sql

(3)重启Oracle数据库

sql

三、热备份

热备份是在数据库运行的情况下,采用方式备份数据库的方法。所以,如果你有昨天夜里的一个冷备份而且又有今天的热备份文件,在发生问题时,就可以利用这些资料恢复更多的信息。热备份要求数据库在Archivelog方式下 *** 作,并需要大量的档案空间。一旦数据库运行在archivelog状态下,就可以做备份了。热备份的命令文件由三部分组成:

1数据文件一个表空间一个表空间的备份。

(1)设置表空间为备份状态

(2)备份表空间的数据文件

(3)回复表空间为正常状态

2备份归档log文件

(1)临时停止归档进程

(2)log下那些在目标目录中的文件

(3)重新启动archive进程

(4)备份归档的redolog文件

3用命令来备份控制文件

热备份的优点是:

1可在表空间或数据库文件级备份,备份的时间短。

2备份时数据库仍可使用。

3可达到秒级恢复(恢复到某一时间点上)。

4可对几乎所有数据库实体做恢复

5恢复是快速的,在大多数情况下爱数据库仍工作时恢复。

热备份的不足之处:

1不能出错,否则后果不堪设想。

2假如热备份不成功,所得结果则不能用于时间点的恢复。

3因为难于维护,所以需要特别仔细小心,不允许在 *** 作时半途而废。

关于Oracle数据库的备份方式就为大家讲解到这里,以后大家需要进行数据库备份工作时可以参照上文中讲解的,从上文中任选一种,就可以完成Oracle数据库的备份,希望上文中涉及到的内容对大家能够有所帮助。

在 Oracle 数据库中,Session(会话)指的是一个连接到数据库实例的用户进程或线程。每个 Session 都有一个唯一的标识符,称为 Session ID(SID),用于区分不同的 Session。

Session 在 Oracle 中扮演着非常重要的角色,它们主要用于执行数据库 *** 作、管理事务、控制数据库资源等。具体来说,Session 可以完成以下几个主要的功能:

执行 SQL 语句:Session 可以通过 SQL 语句向数据库发出请求,并获取结果集。在执行 SQL 语句之前,Session 还需要进行身份验证和授权 *** 作。

管理事务:Session 可以启动和管理事务,包括提交事务、回滚事务等 *** 作。在多用户的并发环境中,Session 还需要处理并发访问带来的竞争条件和数据一致性问题。

控制数据库资源:Session 可以控制数据库资源的使用情况,包括 CPU、内存、磁盘等资源。在多用户的并发环境中,Session 还需要通过锁机制等手段,避免多个用户同时访问同一资源带来的问题。

监控和管理:Session 还可以用于监控和管理数据库实例的状态和性能。通过 Session,DBA 可以查看当前连接到数据库的用户和进程,以及相关的会话信息、等待事件等。

Session 是 Oracle 数据库中非常重要的概念,它们用于执行 SQL 语句、管理事务、控制数据库资源等。在多用户的并发环境中,Session 还需要处理并发访问带来的竞争条件和数据一致性问题,从而保证数据库的安全和可靠性。

在Internet上运作数据库经常会有这样的需求 把遍布全国各城市相似的数据库应用统一起来 一个节点的数据改变不仅体现在本地 还反映到远端 复制技术给用户提供了一种快速访问共享数据的办法 一 实现数据库复制的前提条件 数据库支持高级复制功能 您可以用system身份登录数据库 查看v$option视图 如果其中Advanced replication为TRUE 则支持高级复制功能 否则不支持 数据库初始化参数要求 ① db_domain = 指明数据库的域名(默认的是WORLD) 这里可以用您公司的域名 ② global_names = true 它要求数据库链接(database link)和被连接的数据库名称一致 现在全局数据库名 db_name+ +db_domain ③ 有跟数据库job执行有关的参数 job_queue_processes = job_queue_interval = distributed_transactions = open_links =第一行定义SNP进程的启动个数为n 系统缺省值为 正常定义范围为 ~ 根据任务的多少 可以配置不同的数值第二行定义系统每隔N秒唤醒该进程一次 系统缺省值为 秒 正常范围为 ~ 秒 事实上 该进程执行完当前任务后 就进入睡眠状态 睡眠一段时间后 由系统的总控负责将其唤醒如果修改了以上这几个参数 需要重新启动数据库以使参数生效 二 实现数据库同步复制的步骤 假设在Internet上我们有两个数据库 一个叫深圳(shenzhen) 一个叫北京(beijing) 具体配置见下表 确认两台数据库之间可以互相访问 在tnsnames ora里设置数据库连接字符串 ① 例如 深圳这边的数据库连接字符串是以下的格式 beijing = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = )(PORT = )) ) (CONNECT_DATA = (SERVICE_NAME = beijing) ) ) 运行$tnsping beijing 出现以下提示符 Attempting to contact (ADDRESS=(PROTOCOL=TCP)(HOST= )(PORT= )) OK(n毫秒) 表明深圳数据库可以访问北京数据库 ② 在北京那边也同样配置 确认$tnsping shenzhen 是通的 改数据库全局名称 建公共的数据库链接 ① 用system身份登录shenzhen数据库 SQL>alter database rename global_name to cn; 用system身份登录beijing数据库 SQL>alter database rename global_name to ; ② 用system身份登录shenzhen数据库 SQL>create public database link using beijing ; 测试数据库全局名称和公共的数据库链接 SQL>select from global_n cn; 返回结果为就对了 用system身份登录beijing数据库 SQL>create public database link cn using shenzhen ; 测试数据库全局名称和公共的数据库链接 SQL>select from global_na cn; 返回结果为 cn就对了 建立管理数据库复制的用户repadmin 并赋权 ① 用system身份登录shenzhen数据库 SQL>create user repadmin identified by repadmin default tablespace users temporary tablespace temp; SQL>execute dbms_defer_sys register_propagator( repadmin ); SQL>grant execute any procedure to repadmin; SQL>execute dbms_repcat_admin grant_admin_any_repgroup( repadmin ); SQL>grant ment any table to repadmin; SQL>grant lock any table to repadmin; ② 同样用system身份登录beijing数据库 运行以上的命令 管理数据库复制的用户repadmin 并赋权 说明 repadmin用户名和密码可以根据用户的需求自由命名 在数据库复制的用户repadmin下创建私有的数据库链接 ① 用repadmin身份登录shenzhen数据库 SQL>create database link connect to repadmin identified by repadmin; 测试这个私有的数据库链接 SQL>select from global_n cn; 返回结果为就对了 ② 用repadmin身份登录beijing数据库 SQL>create database link cn connect to repadmin identified by repadmin; 测试这个私有的数据库链接 SQL>select from global_na cn; 返回结果为 cn就对了 创建或选择实现数据库复制的用户和对象 给用户赋权 数据库对象必须有主关键字 假设我们用ORACLE里举例用的scott用户 dept表 ① 用internal身份登录shenzhen数据库 创建scott用户并赋权 SQL>create user scott identified by tiger default tablespace users temporary tablespace temp; SQL>grant connect resource to scott; SQL>grant execute on sys dbms_defer to scott; ② 用scott身份登录shenzhen数据库 创建表dept SQL>create table dept (deptno number( ) primary key dname varchar ( ) loc varchar ( ) ); ③ 如果数据库对象没有主关键字 可以运行以下SQL命令添加 SQL>alter table dept add (constraint dept_deptno_pk primary key (deptno)); ④ 在shenzhen数据库scott用户下创建主关键字的序列号 范围避免和beijing的冲突 SQL> create sequence dept_no increment by start with maxvalue cycle nocache; (说明 maxvalue 可以根据应用程序及表结构主关键字定义的位数需要而定) ⑤ 在shenzhen数据库scott用户下插入初始化数据 SQL>insert into dept values (dept_no nextval accounting new york ); SQL>insert into dept values (dept_no nextval research dallas ); SQL>mit; ⑥ 在beijing数据库那边同样运行以上① ② ③ ⑦ 在beijing数据库scott用户下创建主关键字的序列号 范围避免和shenzhen的冲突 SQL> create sequence dept_no increment by start with maxvalue cycle nocache; ⑧ 在beijing数据库scott用户下插入初始化数据 SQL>insert into dept values (dept_no nextval sales chicago ); SQL>insert into dept values (dept_no nextval operations boston ); SQL>mit; 创建要复制的组scott_mg 加入数据库对象 产生对象的复制支持 ① 用repadmin身份登录shenzhen数据库 创建主复制组scott_mg SQL> execute dbms_repcat create_master_repgroup( scott_mg ); 说明 scott_mg组名可以根据用户的需求自由命名 ② 在复制组scott_mg里加入数据库对象 SQL>execute dbms_repcat create_master_repobject(sname=> scott oname=> dept type=> table use_existing_object=>true gname=> scott_mg ); 参数说明 sname 实现数据库复制的用户名称 oname 实现数据库复制的数据库对象名称 (表名长度在 个字节内 程序包名长度在 个字节内) type 实现数据库复制的数据库对象类别 (支持的类别 表 索引 同义词 触发器 视图 过程 函数 程序包 程序包体) use_existing_object true表示用主复制节点已经存在的数据库对象 gname 主复制组名 ③ 对数据库对象产生复制支持 SQL>execute dbms_repcat generate_replication_support( scott dept table ); (说明 产生支持scott用户下dept表复制的数据库触发器和程序包) ④ 确认复制的组和对象已经加入数据库的数据字典 SQL>select gname master status from dba_repgroup; SQL>select from dba_repobject; 创建主复制节点 ① 用repadmin身份登录shenzhen数据库 创建主复制节点 SQL>execute dbms_repcat add_master_database (gname=> scott_mg master=> use_existing_objects=>true copy_rows=>false propagation_mode => asynchronous ); 参数说明 gname 主复制组名 master 加入主复制节点的另一个数据库 use_existing_object true表示用主复制节点已经存在的数据库对象 copy_rows false表示第一次开始复制时不用和主复制节点保持一致 propagation_mode 异步地执行 ② 确认复制的任务队列已经加入数据库的数据字典 SQL>select from user_jobs; 使同步组的状态由停顿(quiesced )改为正常(normal) ① 用repadmin身份登录shenzhen数据库 运行以下命令 SQL> execute dbms_repcat resume_master_activity( scott_mg false); ② 确认同步组的状态为正常(normal) SQL> select gname master status from dba_repgroup; ③ 如果这个①命令不能使同步组的状态为正常(normal) 可能有一些停顿的复制 运行以下 lishixinzhi/Article/program/Oracle/201311/16816

Oracle DML(数据库 *** 作语言)如下:

一、添加数据:

语法:insert into 表名(列名) values(值);

实例代码如下:

二、复制数据:

语法: insert into 表名(列名) values(值);

示例代码:

注意事项:

--Oracle数据库中字符串类型使用的是单引号(‘’), mysql中的字符串可以使用单引号和双引号。

--Oracle数据库没有自增长的语句,要实现序列排序需要借助序列对象。

--在 Oracle 数据库中,一个 insert 语句就只能够插入一条数据。

三、复制数据:

语法:insert into 表名 select 列名1,列名2 from 表名; 复制数据的时候,两张表的字段数量和类型必须要相同。

示例代码:

四、修改数据:

语法:update 表名 set 列1=值1, 列2=值2, where 条件;

示例代码:

参考资料:

百度百科--DML

以上就是关于ORACLE数据库如何备份数据最好是备份哪些东西(oracle怎么备份数据库)全部的内容,包括:ORACLE数据库如何备份数据最好是备份哪些东西(oracle怎么备份数据库)、oracle 中Session是做什么的、在Oracle中实现数据库的复制等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

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

原文地址:https://54852.com/sjk/9448461.html

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

发表评论

登录后才能评论

评论列表(0条)

    保存