
一、备份还原简介
数据库备份是 DBA 日常最重要的工作内容。备份的主要目的是数据容灾,保证数据的安全性,在数据库发生故障时,通过还原备份集,将数据恢复到可用状态。
下面主要讲一下以联机执行SQL 语句进行备份还原和脱机工具 DMRMAN 进行备份还原的方式。
二、归档配置
备份与恢复过程都依赖归档日志,归档日志是保证数据一致性和完整性的重要保障。配有归档日志的数据库系统在出现故障时丢失数据的可能性更小,这是因为一旦出现介质故障如磁盘损坏时,利用归档日志,系统可被恢复至故障发生的前一刻,也可以还原到指定的时间点。
使用如下语句检查DM归档是否开启:
select arch_mode from v$database
1
1
ARCH_MODE字段查询结果为“Y”表示已开启,如果为“N”,则DM数据库归档未开启。
或者查看配置文件dmini,参数ARCH_INI的值:1表示已开启归档,0表示未开启归档
可以使用如下系列命令开启归档模式。开启归档模式,需要确定归档类型、归档路径、归档文件大小、归档空间大小限制参数,根据实际情况进行设置。
alter database mount;
alter database add archivelog 'dest=/dmdata/dmarch/arch,TYPE=local,FILE_SIZE=1024,SPACE_LIMIT=102400';
alter database archivelog;
alter database open;
1
2
3
4
1
2
3
4
或者修改配置文件dmini中的参数ARCH_INI=1,在dmini所在目录中,创建dmarchini文件并添加以下内容后,重启数据库实例。
[ARCHIVE_LOCAL1]
ARCH_TYPE = LOCAL
ARCH_DEST = /dmdata/dmarch/arch
ARCH_FILE_SIZE = 1024
ARCH_SPACE_LIMIT = 102400
ARCH_FLUSH_BUF_SIZE = 0
ARCH_HANG_FLAG = 1
1
2
3
4
5
6
7
1
2
3
4
5
6
7
三、使用disql进行联机备份还原
使用 DIsql 工具备份数据库、用户表空间、用户表和归档,系统必须处于归档模式下时,才允许进行数据库联机备份且保证数据库处于 OPEN 状态。
1 备份数据库
11 完全备份
执行数据库备份,数据库必须处于 OPEN 状态,MOUNT 和 SUSPEND 状态下不允许执行数据库备份。
在disql 中输入备份数据库语句,最简单的不设置其他参数的完全备份语句如下:
指定备份集路径为“/home/dm_bak/db_full_bak_01”
BACKUP DATABASE FULL BACKUPSET ‘/home/dm_bak/db_full_bak_01’;
这是最简单的数据库备份语句,如果要设置其他的备份选项需了解联机备份数据库的语法。 详细请参考《DM8备份与还原pdf》中的32211 概述。
12 设置备份名
系统为每个备份指定一个备份名,它可作为识别备份的一种方式。备份时用户可以采用系统生成的备份名也可以指定属于自己的备份名。
创建备份集,备份名设置为“WEEKLY_FULL_BAK”。
13 增量备份
增量备份指基于指定的库(或者表空间)的某个备份(完全备份或者增量备份),备份 自该备份以来所有发生修改的数据页。执行增量备份的主要目的是快速备份数据库中的修改, 减少备份时间和避免重复的备份。
在disql 中输入备份数据库语句,最简单的不设置其他参数的增量备份语句如下:
BACKUP DATABASE INCREMENT WITH BACKUPDIR ‘/home/dm_bak’ BACKUPSET ‘/home/dm_bak/db_increment_bak_02’;
2 表空间备份
21 完全备份
表空间备份就是拷贝表空间内所有数据文件中的有效数据的过程。DM 仅支持表空间联机备份,完全备份一个表空间步骤如下:
在 disql 中输入备份表空间语句,最简单的不设置其他参数的完全备份表空间语句:
BACKUP TABLESPACE MAIN FULL BACKUPSET ‘/home/dm_bak/ts_full_bak_01’;
22 增量备份
执行表空间增量备份的主要目的同数据库增量备份一样是为了快速备份数据库中的修改,减少备份时间和避免重复的备份。
在disql 中输入备份表空间语句,最简单的不设置其他参数的增量备份语句如下:
BACKUP TABLESPACE MAIN
INCREMENT WITH BACKUPDIR ‘/home/dm_bak’
BACKUPSET ‘/home/dm_bak/ts_increment_bak_02’;
3 表备份
表备份拷贝指定表所使用的所有数据页到备份集中,并记录各个数据页之间的逻辑关系用来恢复表数据结构。表备份均为联机完全备份,不需要备份归档日志,不存在增量备份之说。当数据库中某张表比较重要而又没必要备份整个数据库或表空间时就可以选择表备份。完整的备份表步骤如下:
1如有需要,可创建待备份的表 TAB1: SQL>CREATE TABLE TAB1(C1 INT);
2在disql 中输入备份表语句,简单的备份语句如下:
BACKUP TABLE TAB1 BACKUPSET ‘/home/dm_bak/tab_bak_01’;
4 归档备份
归档备份拷贝指定归档目录下的所有的归档文件到备份集中,并记录各个归档文件的属性、文件大小以及 LSN 区间等。归档备份不存在增量备份之说。当需要保存库的归档时,可以使用归档备份。
在disql 中输入备份数据库语句。
通过 LSN BETWEEN … AND …来指定起始和截至 LSN。
首先,确定 LSN 范围。:
select ARCH_LSN, CLSN, PATH from V$ARCH_FILE;
通过查询结果选出备份的起始 LSN 和截至 LSN。比如 36766 38135
其次,备份归档:
BACKUP ARCHIVELOG LSN BETWEEN 36766 AND 38135 BACKUPSET ‘/home/dm_bak/arch_bak_time_36766-38135’;
5 数据还原
DM 仅支持表的联机还原,数据库、表空间和归档日志的还原必须通过脱机工具 DMRMAN执行。
51 表还原
执行表还原,数据库必须处于 OPEN 状态,MOUNT 和 SUSPEND 状态下不允许执行表还原。表还原不需要配置归档,因为表还原是联机完全备份还原,所以不需要借助本地归档日志进行恢复。
表结构还原:
表备份和目标表中都包含索引,如果直接执行表数据还原会报错:还原表中存在二级索引或冗余约束。
创建待备份的表;
create table tab1 (a int, b varchar);
备份表数据;
BACKUP TABLE tab1 BACKUPSET ‘/home/dm_bak/tab1_bak_01’;
表结构还原:
RESTORE TABLE tab1 STRUCT FROM BACKUPSET
‘/home/dm_bak/tab1_bak_01’;
表数据还原:
RESTORE TABLE tab1 FROM BACKUPSET
‘/home/dm_bak/tab1_bak_01’
还原表数据,但不重建索引:
RESTORE TABLE tab1 WITHOUT INDEX
FROM BACKUPSET ‘/home/dm_bak/tab1_bak_01’;
还原表数据,但不还原约束:
RESTORE TABLE tab1 WITHOUT CONSTRAINT
FROM BACKUPSET ‘/home/dm_bak/tab1_bak_01’;
四、使用 DMRMAN工具进行脱机备份还原
1 备份数据库
11 完全备份
执行数据库备份要求数据库处于脱机状态。若是正常退出的数据库,则脱机备份前不需
要配置归档;若是故障退出的数据库,则备份前,需先进行归档修复。
备份到默认目录:
RMAN>BACKUP DATABASE '/dmdata/dmdb/DAMENG/dmini';
--命令执行完后会在默认的备份路径下生成备份集目录,默认的备份路径为 dmini 中BAK_PATH 的配置值,若未配置,则使用 SYSTEM_PATH 下的 bak 目录。
1
2
1
2
备份到指定目录:
RMAN>BACKUP DATABASE '/dmdata/dmdb/DAMENG/dmini' FULL BACKUPSET '/home/dm_bak/db_full_bak_01';
1
1
12 增量备份
增量备份指基于指定的库的某个备份(完全备份或者增量备份),备份自该备份以来所有发生修改了的数据页。脱机增量备份要求两次备份之间数据库必须有 *** 作,否则备份会报
错。
RMAN>BACKUP DATABASE '/dmdata/dmdb/DAMENG/dmini' INCREMENT WITH BACKUPDIR '/home/dm_bak'BACKUPSET '/home/dm_bak/db_increment_bak_02';
--命令中的 INCREMENT 参数表示执行的备份为增量备份,增量备份时该参数不可省略。如果增量备份的基备份不在默认备份目录中,则必须指定 WITH BACKUPDIR 参数用于搜索基备份集。
1
2
1
2
2 备份归档
21 创建归档备份
使用 DMRMAN 备份归档需要设置归档,否则会报错。关闭数据库实例。
备份到默认目录:
RMAN>BACKUP ARCHIVE LOG DATABASE '/dmdata/dmdb/DAMENG/dmini';
--命令执行完后会在默认的备份路径下生成备份集目录,默认的备份路径为 dmini 中BAK_PATH 的配置值,若未配置,则使用 SYSTEM_PATH 下的 bak 目录。
1
2
1
2
备份到指定目录:
RMAN>BACKUP ARCHIVE LOG ALL DATABASE '/dmdata/dmdb/DAMENG/dmini' BACKUPSET
'/home/dm_bak/arch_all_bak_01';
--命令中的 ALL 参数表示执行的备份为备份所有的归档,也可以不指定该参数,DMRMAN默认执行的备份类型为 ALL 类型归档备份。
1
2
3
1
2
3
22 创建设置条件的归档备份
设置条件的归档备份指通过设置 LSN 或者时间点,控制需要备份归档的范围。
RMAN>BACKUP ARCHIVE LOG LSN BETWEEN 50000 AND 120000 DATABASE '/dmdata/DAMENG/dmini' BACKUPSET '/home/dm_bak/arch_lsn_bak_02';
1
1
3 数据库还原和恢复
使用 RESTORE 命令完成脱机还原 *** 作,在还原语句中指定库级备份集,可以是脱机库级备份集,也可以是联机库级备份集。
31 还原数据库
RMAN>RESTORE DATABASE '/dmdata/dmdb/DAMENG_FOR_RESTORE/dmini' FROM BACKUPSET '/home/dm_bak/db_full_bak_for_restore';
1
1
32数据库恢复
RMAN>RECOVER DATABASE '/dmdata/dmdb/DAMENG_FOR_RESTORE/dmini' FROM BACKUPSET '/home/dm_arch/arch';
--使用 RECOVER DATABASEUNTIL TIME 命令恢复到指定的时间:
RMAN>RECOVER DATABASE '/opt/dmdbms/data/DAMENG_FOR_RESTORE/dmini' WITH ARCHIVEDIR'/home/dm_arch/arch' UNTIL TIME'2018-11-16 10:56:40';
--使用 RECOVER DATABASEUNTIL LSN 命令恢复到指定的 LSN
RMAN>RECOVER DATABASE '/opt
因为这个平台的访问量很大。所以导致经常加载很慢。
有时候打开一个链接非常之慢,大量评论展开更是无法忍受。有时页面刷新完了,点任何连接都没有响应。或者说,任何一个网站很卡,都不大应该说是其后端的某个语言导致的(虽然写的很烂确实会导致卡顿,但你的问的这个肯定不是这个原因)。
对于这类访问量很大,同时又大量文本内容的网站,会大量使用Cache,也就是说直接从内存取数据不再频繁访问数据库,从这个层面基本各个语言都不会差太多,甚至HTML页面也都是cache出来的。
就是不要进入页面的时候把Ajax请求一口气全发出去,而是先等用户进入页面(比如8个请求的时候),然后页面基本信息渲染完毕后再依次发送其他Ajax请求。终于明白为什么上不了YouTube了,我还想补充一下,php也是垃圾啊,facebook那么大的网站,用php做的,根本上不去嘛。
首先,说Python慢,这是和编译语言比,比如与C、C++、ava比在动态语言中,它并不慢,它比Ruby要快,它和Perl性能相当。如果选择动态语言的话,Python并不是很慢。另一方面,如果做网站开发,语言的不是速度的瓶颈,比如现在用Python写的程序全部用C写。程序当然会快一点,但是改变不是很大。
Web网站一般会有很多对IO的 *** 作,比如对数据库的访问,对硬盘的访问响应用户的请求,80%,90%你的时间都花在IO上,语言的速度,相对而言,不是那么重要。也可以这样说,网站的性能主要取决于架构设计的是否合理。因为网站需要响应大量的并发的请求,如果你的设计的不好,即使你用C写的,也可能无法应付。
所以更多的考虑是在架构设计上,要使架构体系不会产生速度瓶颈。
数据仓库,英文名称为Data Warehouse,可简写为DW或DWH。数据仓库,是为企业所有级别的决策制定过程,提供所有类型数据支持的战略集合。它是单个数据存储,出于分析性报告和决策支持目的而创建。 为需要业务智能的企业,提供指导业务流程改进、监视时间、成本、质量以及控制。
我简单的做一个比喻,数据仓库就是可以理解就是一个使用仓库,数据就是这个仓库的货物,而数据仓库的开发人员就是这个仓库的管理员,所以数据仓库就是一个怎么管理好数据,使得数据规范的放在仓库中,便于BI、AI等其他的使用数据的方面可以更好的使用仓库里面的数据,使得数据发挥出更好的价值,显而易见在一堆有规律,整齐的货物里面找一个东西,要比在没有整理的里面找更加有效率。
可以参考这篇文章:数据仓库(1)什么是数据仓库 - 知乎 (zhihucom)
数据仓库:为企业所有级别的决策制定过程,提供所有类型数据支持的战略(数据)集合。
大数据:所涉及的资料量规模巨大到无法透过主流软件工具,在合理时间内达到撷取、管理、处理、并整理成为帮助企业经营决策更积极目的的资讯。
传统数据库:一个长期存储在计算机内的、有组织的、可共享的、统一管理的大量数据的集合。
其实从三个定义,我们好像区别不大。
数据库指的是数据的集合,数据仓库也是一个数据集合,大数据也是一个处理和存储数据的地方。
但是不同的是,在于应用场景,和构建的技术原理不一样。
传统数据库是存储根据范式建模的关系型数据,主要用于OLTP(on-line transaction processing)翻译为联机事务处理的软件。大数据是根据map redurce范式构建的出局处理,存储的软件,主要用于OLAP是做分析处理。大数据和传统数据库,还有一个更大的区别在于,处理的数据量以及计算量的大小,当传统数据库,无法在人可以接受的短时间内计算出结果,那这个数据就叫大数据,需要使用到大数据技术处理。而数据仓库本质上是一种数据的处理方式,而不是一种基础软件,它可以依赖于传统数据库,也可以依赖大数据技术去构建。
可以参考这篇文章:数据仓库(2)数据仓库、大数据与传统数据库的区别 - 知乎 (zhihucom)
web前端分为网页设计师、网页美工、web前端开发工程师
首先网页设计师是对网页的架构、色彩以及网站的整体页面代码负责
网页美工只针对UI这块儿的东西,比如网站是否做的漂亮
web前端开发工程师是负责交互设计的,需要和程序猿进行交互设计的配合。
web前端需要掌握的有脚本技术javascriptDIV+CSS现下最流行的页面搭建技术,ajax和jquery以及简单的后端程序等。后端的话可供开发的语言有asp、php、jsp、NET这些后端开发语言的话搭建环境都不一样,具体如果你想学的话看是想从事前端部分还是后端程序部分。后端开发如果有一定的条件的话可以转为软件开发。不过要有一定的语言基础,类似java语言。C等。关键是看你的兴趣爱好。
这个到后期不会区分这么细,做前端到后期也会懂一些后端的技术,反之,后端也是。
在我们实际的开发过程中,我们当前这样定位前端、后端开发人员。
1)前端开发人员:精通JS,能熟练应用JQuery,懂CSS,能熟练运用这些知识,进行交互效果的开发。
2)后端开发人员:会写Java代码,会写SQL语句,能做简单的数据库设计,会Spring和iBatis,懂一些设计模式等。
现在来看,我们对前后端的要求还是蛮低的,尤其是后端,新员工经过培训之后都是可以参与到后端开发的,没有太高的技术门槛,唯一需要做的就是先变成熟练工种,这个阶段没有涉及到设计模式、架构、效率等一些列问题。
Web前端:顾名思义是来做Web的前端的。我们这里所说的前端泛指Web前端,也就是在Web应用中用户可以看得见碰得着的东西。包括Web页面的结构、Web的外观视觉表现以及Web层面的交互实现。
前端、后端的技术要求:
Web前端:
1)精通HTML,能够书写语义合理,结构清晰,易维护的HTML结构。
2)精通CSS,能够还原视觉设计,并兼容业界承认的主流浏览器。
3)熟悉JavaScript,了解ECMAScript基础内容,掌握1~2种js框架,如JQuery
4)对常见的浏览器兼容问题有清晰的理解,并有可靠的解决方案。
5)对性能有一定的要求,了解yahoo的性能优化建议,并可以在项目中有效实施。
6)
Web后端:
1)精通jsp,servlet,javabean,JMS,EJB,Jdbc,Flex开发,或者对相关的工具、类库以及框架非常熟悉,如Velocity,Spring,Hibernate,iBatis,OSGI等,对Web开发的模式有较深的理解
2)练使用oracle、sqlserver、mysql等常用的数据库系统,对数据库有较强的设计能力
3)熟悉maven项目配置管理工具,熟悉tomcat、jboss等应用服务器,同时对在高并发处理情况下的负载调优有相关经验者优先考虑
4)精通面向对象分析和设计技术,包括设计模式、UML建模等
5)熟悉网络编程,具有设计和开发对外API接口经验和能力,同时具备跨平台的API规范设计以及API高效调用设计能力
6)
以上就是关于发布后脱机再联机数据库不存在全部的内容,包括:发布后脱机再联机数据库不存在、知乎页面为什么经常加载很慢、数据仓库是什么等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)