如何搭建一个自用的电影资料数据库环境搭建

如何搭建个人独立博客? - 知乎2710被浏览262326分享邀请回答hill1895.rocks/因为觉得Wordpress啥的模板一点都不好看,就纯手工敲了一个,总计花了一个多月时间,感觉用着还挺顺手。目前总共就花费了7美金在上买了个域名,其他全使用开源的资源,一分钱没花。空间使用了AWS一年的免费主机(真心是业界良心)博客架构:服务器:空间使用AWS一年免费的虚拟机,使用ubuntu14. 04+Nginx1.8+uWSGI来部署Django应用,从上购买域名,服务器配置:内存:613MB内存,基于Xen 32位或64位30GB月流量,其中15G上行流量, 15G下行流量主机空间10GB硬盘,1百万以下I/O读写可以免费使用一年,有Linux和Windows操作系统网站框架:Django1.8。博客后台:修改Django自带的Admin系统,主要添加富文本编辑器用于编写博客,富文本编辑器选择百度的UEditor,其可以在Github上找到。数据库:使用MySQL,主要便于同Django集成,另外Django Admin后台操作数据库非常方便。前端:框架和UI使用Bootstrap3,布局使用Bootstrap的网格布局,使用网格布局+Media Query来做响应式设计,以便支持不同尺寸的设备。使用 SyntaxHighlighter来对pre标签中的代码做代码高亮。图片存储:七牛云存储。由于虚拟机整个只有30G空间,图片上传相当不划算,于是寻找外部存储方案,最后发现可以做网站图片外链,每月免费10G流量,10万次免费请求,完全可以不花一分钱满足个人博客的需求。评论和分享:。使用该插件,保证在不设计自己的账号系统,不使用自己的数据库的情况下能够进行文章的评论互动和分享。站内搜索:百度站内搜索插件。版本控制:Git。使用Git来进行版本控制,项目托管在GitHub上,项目地址为。优化:用Nginx来进行静态资源的压缩传输,设置缓存等,可以很大程度上提升网站访问速度。具体搭建过程可以参考博客中的文章,有编程基础的大概一个月就能搞定。欢迎各位访问和添加友链。PS:源代码大家尽管拿去用,记得给加星哈PPS:博客后台长这样,就用的Django自带的后台,稍加修改,轻松愉快。写博客自然要用到文本编辑器,我把百度出品的Uedtior放了进去,功能很丰富,挺好用的。写博客自然要用到文本编辑器,我把百度出品的Uedtior放了进去,功能很丰富,挺好用的。10224 条评论分享收藏感谢收起/article/f71d6ab641d117.htmlxampp下载:弄好了,我就开始下各种主题和插件,一直折腾到我觉得满意后,我决定开始玩真的,建站!1.买域名本来我的选择只有万网或者新网,但是后来听说国内的域名注册一点都不自由,说封就封,而且基本上没有转让域名的可能性。所以我果断出国啦,网友推荐我用狗爹godaddy,我去看了一下价格觉得还不错,而且目前已中文化,点击进入:另外建议百度一下优惠码再购买,可以省一些钱。2.买空间我本来想买阿里云空间的,但是看了看价格,还是算了。所以就想买个最便宜的美国虚拟主机,由于英语不行,去外国网站买虚拟空间后台管理肯定生不如死,所以我就找在中国有代理美国空间的空间商,知乎上都推荐老鹰主机,或者老薛主机,我对比了一下,还是老薛主机便宜,于是就买了最便宜的50元美国空间,付款的时候问了客服有没有优惠码,最后一共花了35元。点击进入:3.安装wordpress老薛主机的后台是cPane的,我完全没见过,于是参考了这篇教程,cPanel安装WordPress中文教程但是在网页上直接上传实在太慢,我采用FlashFXP工具上传,不过要先去cPanel-ftp账户那里设置一下账号密码,IP就是空间的共享IP。4.域名绑定空间这个我不知道啥原理,但是DNSPOD上面有教程:点击查看:要注意的是A记录要设置俩个,一个是www,一个是@。这样www开头的域名才能打开。大概就是这样了,欢迎转载,但是请注明转载自我的博客哦!好好琢磨:25943 条评论分享收藏感谢收起查看更多回答2 个回答被折叠()影视数据库_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
影视数据库
阅读已结束,下载文档到电脑
想免费下载本文?
定制HR最喜欢的简历
下载文档到电脑,方便使用
还剩12页未读,继续阅读
定制HR最喜欢的简历
你可能喜欢Oracle 高级知识(127)
玩Oracle 2年多了,从接触Oracle&到现在,一直没有停止过学习。&要学的东西太多,刚入门的时候是这样的感觉,现在还是这样的感觉。&有时候也在想,还要学多长时间才能感觉自我良好了,有十足的自信心了。&很多朋友都想做DBA,&因为他们觉得这一个高薪的行业。&但是并不是所有都明白为什么DBA是个高薪的行业。&高薪意味着压力大,责任大。
现代化的程度越高,对数据库的依赖性越大。&数据安全性和系统的安全性也就越大。比如公司业务系统。&数据库是直接的存储地方的,他的重要性是不言而喻的,宕机带来的损失可能是按分钟或者秒算的。&而谁对这些数据库负责--DBA。&所以很多公司,企业都是找有经验的DBA&,他们也是在为他们的系统买保险。&这也是为什么企业不愿意招一个没有实战经验的DBA来管理自己的数据库。
试想某个省移动的数据库出了问题,造成数据丢失,在比如银行数据库挂了。&他们带来的损失不光是影响正常的业务运行,还有可能是数据错误。假如你在银行存了100万,结果银行一不小心,在数据库里少了几个0.&这个是谁也不愿意看到的。&当然以上都是假设的情况。&因为像这些数据重要性极高的单位,他们都有一整套数据的保护机制。&是不会发生这种情况的。
下面就来总结一下如何的来搭建一个数据库平台。&主要从参数和一些特性的配置上来说明。当然我玩Oracle也才2年,经验不足,可能对与这些参数的设置也不是很合理。
从网上看到过一句话:每个DBA心中对重要的参数都有一个标准。&我想这也是经验的价值。
一.&Linux&系统
说明,在安装操作系统之前,现在服务器上做个RAID。一般都用RAID5.
1.LINUX磁盘划分:
&&&a.对于内置2块磁盘(146GB)的系统,/目录20GB,SWAP与内存大小相当(8GB以下内存机器SWAP配置8GB),/boot 100MB。如果作为应用服务器,那么其余空间建立/apps文件系统,mke2fs –j&命令;如果作为数据库平台,那么建立/dba文件系统20GB,其余建立/u01文件系统。
&&&b.对于内置4-6块磁盘的系统,/目录60GB,SWAP与内存大小相当(8GB以下内存机器SWAP配置8GB),/boot&100MB。如果作为应用服务器,那么其余空间建立/apps文件系统,mke2fs –j命令;如果作为数据库平台,那么建立/dba文件系统40GB,其余建立/u01文件系统。
&&&c.对于oracle数据文件目录文件系统使用mke2fs –j –T largefiles命令建立
2.对于非外接存储情况下:
a.ORACLE目录标准:ORACLE_HOME=/dba/app/oracle/product/10.2.0.4(按版本指定)
&&&&&ORACLE_BASE=/dba&&(dump目录为/dba/admin/sid/)
&&&&&Datafile目录为/u01/oradata/sid
&&&&&归档空间目录/u01/oradata/archive_sid
&&&b.对于有外接存储(/u02…)情况下:
ORACLE目录标准:ORACLE_HOME=/dba/app/oracle/product/10.2.0.4(按版本指定)
&&&&&&ORACLE_BASE=/u01&&(dump目录为/u01/admin/sid/)
&&&&&&Datafile目录为/u02/oradata/sid&&
&&&&&&归档空间目录/u01/oradata/archive_sid
c.ORACLE建库采用CUSTOMER方式,直接更改初始UNDO和TEMP空间8GB(或者4GB,或者通过增加文件数目到更大,根据业务系统),system空间512MB(或者1GB)。Redolog为100MB,单个数据文件大小以8GB为宜(因EXT3文件系统特性使然),建议数据文件一次性划分到8G,&以保证数据文件的连续性。
3.参数及服务配置:
&&方法一:建立NTP时间同步服务,/etc/ntp.conf中加入server 10.0.30.172,执行# ntpdate 10.0.30.172,# service ntpd start&,# chkconfig --level 235 ntpd on
&&方法二:&时间同步配置(编辑crontab)
&&输入命令:ntpdate 10.0.30.172
&&crontab –e(编辑crontab)
&&按i进入输入状态,输入以下一行:
&&01 01 * * * root /usr/sbin/ntpdate 10.0.30.172 &/dev/null 2&&1(每天01:01与时间服务器10.0.30.172同步时间)
&&:wq!(保存退出)
更多信息参考我的Blog:&Linux&时间同步配置
4. Linux&内核参数修改
&&4.1&修改内核参数/etc/sysctl.conf,对于8GB-16GB内存机器
&&&&&&kernel.shmall = 2097152&à&4194304 ( 4KB单位,总内存大小)
kernel.shmmax =&&à(实际物理内存的2/3)
kernel.shmmni = 4096
&&&&&对于16GB内存以上机器
&&&&&&kernel.shmall = 2097152&à&8388608&&( 4KB单位,总内存大小)
kernel.shmmax =&&à(比实际物理内存的2/3)
kernel.shmmni = 4096 –&8192
&&net.ipv4.ip_local_port_range =
&&net.core.rmem_default = 262144
&&net.core.rmem_max = 4194304
&&net.core.wmem_default = 262144
&&net.core.wmem_max = 1048586
&以前也整理的相关的资料,详见blog:&Linux&内核参数及Oracle相关参数调整
&4.2.根据应用情况修改进程数限制&/etc/security/limits.conf
&&&&&*&&&&&&&&&&&&&&&soft&&&&&&&&&&&&nproc&&&&&&&&&&&2047
*&&&&&&&&&&&&&&&hard&&&&&&&&&&&nproc&&&&&&&&&&&16384
*&&&&&&&&&&&&&&&soft&&&&&&&&&&&&nofile&&&&&&&&&&1024 -&2048
*&&&&&&&&&&&&&&&hard&&&&&&&&&&&&nofile&&&&&&&&&&65536
注:关于内核参数的修改,在Oracle&官方的安装文档里也有相关说明:
在连接中的第&2.7 Configure Oracle Installation Owner Shell Limits&节。也有详细介绍。
二.&Oracle&配置
安装实例之前,记得修改db_files&,&maxdatafiles&和MAXLOGHISTORY&参数。&&这2个参数是放在控制文件里的,如果在安装实例的时候没有设置成合适的值,以后调整起来会很麻烦。
具体参考:
Oracle db_files&和&maxdatafiles&说明
1.&创建pfile&参数
Oracle&默认只会创建spfile,但这是个二进制文件,无法进行修改。&为了保险期间。我们要在开始就创建一个pfile&文件,语句很简单,但作用不可忽略。
Windows&下生成的pfile&文件默认在$ORACLE_HOME/database&下
Linux&默认位置在$ORACLE_HOME/dbs&下
2.&SGA, PGA&设置
先来看几个SQL
SQL&&show parameter sga
NAME&&&&&&&&&&&&&&&&&&TYPE&&&&&&&&VALUE
------------------------------------ ----------- -------
lock_sga&&&&&&&&&&&&&&&&boolean&&&&&FALSE
pre_page_sga&&&&&&&&&&&&boolean&&&&&FALSE
sga_max_size&&&&&&&&&&&&big integer&&584M
sga_target&&&&&&&&&&&&&&&big integer&&584M
SQL&&show parameter pga
NAME&&&&&&&&&&&&&&&&&&&&TYPE&&&&&&&&VALUE
------------------------------------ ----------- ------
pga_aggregate_target&&&&&&&&big integer&&&&194M
SQL&&select name,value ,ISSYS_MODIFIABLE from v$parameter where name like 'sga%';
NAME&&&&&&&&&&&&VALUE&&&&&&&&&&&ISSYS_MOD
--------------- --------------- ---------
sga_max_size&&&&&&&&&&&FALSE
sga_target&&&&&&&&&&&&&IMMEDIATE
SQL&&select name,value,issys_modifiable from v$parameter where name like 'pga%';
NAME&&&&&&&&&&&&&&VALUE&&&&ISSYS_MOD
--------------------&&&&&&----------&&&&---------
pga_aggregate_target&&&&&IMMEDIATE
如果ISSYS_MODIFIABLE&返回的是false,说明该参数无法用alter system语句动态修改,需要重启数据库。
所以sga_max_size&是不可以动态调整的。
在安装之后我们要对PGA&和&SGA&进行设置。&因为sga_max_size&是非动态的,修改后需要重启,所以我们在开始设置的时候可以把sga_max_size设大一点。&sga_target&是动态的,我们可以根绝需要进行调整。这个调整主要根据命中率来。这里就不多说。当指定SGA_TARGET小于SGA_MAX_SIZE,实例重启后,SGA_MAX_SIZE就自动变为和SGA_TARGET一样的值了。
对于OLTP系统,一般的建议是将SGA_MAX_SIZE&设为物理内存的60%,PGA&设为20%。
下表是一个参考值:
SGA_MAX_SIZE值
这个参数修改可以在pfile里修改,也可以通过命令直接来:
SQL& alter system set pga_aggregate_target=150m scope=
系统已更改。
SQL& alter system set sga_target=500m scope=
系统已更改。
SQL& alter system set sga_max_size=510m scope=&&--要是参数生效,需要重启
系统已更改。
SQL& alter system set&sga_max_size=510m scope=
alter system set sga_max_size=510m scope=both
&&&&&&&&&&&&&&&&&*
第&1&行出现错误:
ORA-02095:&无法修改指定的初始化参数
SQL& alter system set sga_target=550m scope=
系统已更改。
SQL& show parameter sga
NAME&&&&&&&&&&&&&&&TYPE&&&&&&&&VALUE
------------------------------------ ----------- --------
lock_sga&&&&&&&&&&&&&&boolean&&&&&FALSE
pre_page_sga&&&&&&&&&&boolean&&&&&FALSE
sga_max_size&&&&&&&&&&big integer&&584M
sga_target&&&&&&&&&&&&&big integer&&550M
以上都是针对Oracle 10g&版本的。&如果是9i的话,还需要对每个参数进行配置,如Share Pool,DB buffer,Java Pool,redo log buffer等。
Oracle&内存详细分析请参考CSDN blog:Oracle&内存&架构&详解
3.&UNDO, TEMP&表空间设置
undo&表空间放的是数据的前镜像,当做某个记录多修改时,原记录就会放到undo&中。所以Undo&表空间的大小影响数据的恢复能力。&对它的配置要用点心思。
SQL& show parameter undo
NAME&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&TYPE&&&&&&&&VALUE
------------------------------------ ----------- -----------
undo_management&&&&&&&&&&&&&&&&&&&&&&string&&&&&&AUTO
undo_retention&&&&&&&&&&&&&&&&&&&&&&&integer&&&&&900
undo_tablespace&&&&&&&&&&&&&&&&&&&&&&string&&&&&&UNDOTBS1
undo_retention&只是指定undo&数据的过期时间,默认是900s,15分钟。建议改成10800s,即3个小时。
SQL& alter system set undo_retention=10800 scope=
系统已更改。
至于undo&表空间的大小,如果磁盘空间允许,就将表空间设为32G,分成4个数据文件,单个数据文件8G。&如果空间有限,就设为8G或者16G(8*2)。
不过现在的服务器硬盘都是比较大,如果放在存储上,那空间更大,所以32G。相对而言就就是一个很小的空间了。
ALTER&DATABASE&DATAFILE&'D:/ORACLE/PRODUCT/10.2.0/ORADATA/ORCL/UNDOTBS01.DBF'&RESIZE&50M;
ALTER&TABLESPACE&UNDOTBS1&ADD&DATAFILE&'D:/ORACLE/PRODUCT/10.2.0/ORADATA/ORCL/UNDOTBS02.DBF'&SIZE&5M&AUTOEXTEND&ON&NEXT&5M&MAXSIZE&UNLIMITED;
大量的DML&操作会产生大量的undo,尤其是update,delete。&当Undo&特别大的时候,我们可以把undo&删了重建。
具体参考我的blog:Oracle undo&回滚段管理
临时表空间主要用途是在数据库进行排序运算、管理索引、访问视图等操作时提供临时的运算空间,当运算完成之后系统会自动清理。当oracle里需要用到sort的时候,PGA中sort_area_size大小不够时,将会把数据放入临时表空间里进行排序,同时如果有异常情况的话,也会被放入临时表空间,正常来说,在完成Select语句、create index等一些使用TEMP表空间的排序操作后,Oracle是会自动释放掉临时段的。但有些有侯我们则会遇到临时段没有被释放,TEMP表空间几乎满的状况,甚至是我们重启了数据库仍没有解决问题。
ALTER&DATABASE&TEMPFILE&'D:/ORACLE/PRODUCT/10.2.0/ORADATA/ORCL/TEMP01.DBF'&RESIZE&30M;
ALTER&TABLESPACE&TEMP&ADD&TEMPFILE&'D:/ORACLE/PRODUCT/10.2.0/ORADATA/ORCL/TEMP02.DBF'&SIZE&10M&AUTOEXTEND&ON&NEXT&1M&MAXSIZE&UNLIMITED;
和UNDO&一样,可以设为32G&(4*8G)或者16G(2*8G),具体情况具体对待。如果遇到temp tablespace&满了的话,我们也可以重建其表空间。&具体操作方法,参考blog:Oracle Temp&临时表空间
4.&修改sessions&和&processes&参数
&&&数据库默认的sessions&是170,Processes&是150.&这2个数值肯定是不能满足系统需要的。我们需要把这2个参数调大一点。&方法还是一样,可以直接修改pfile,也可以用SQL.&建议把processes改成1000.sessions&改成2000.&当然具体情况具体对待。
SQL& select name,value,issys_modifiable from v$parameter where name='sessions';
NAME&&&&&&&&VALUE&&&&&&ISSYS_MOD
-------------------- ---------- ---------
sessions&&&&&&&170&&&&&&&&FALSE
SQL& select name,value,issys_modifiable from v$parameter where name='processes';
NAME&&&&&&&&&VALUE&&&&&&ISSYS_MOD
-------------------- ---------- ---------
processes&&&&&&&150&&&&&&&&FALSE
从上面的结果我们可以知道,修改这2个参数必须重启数据库。
SQL& alter system set sessions=2000 scope=
系统已更改。
SQL& alter system set processes=1000 scope=
系统已更改。
5.&启动归档模式,并部署定期删除归档文件脚本.
生产库必定运行在归档模式下,因为通过归档,我们对数据进行恢复。我们RMAN&备份,Data Guard也需要归档文件。
数据库归档非归档的切换比较简单。
SQL&&alter system set log_archive_dest_1='location=/u01/newccs_archive';
SQL& shutdown immediate
SQL& alter
Database log mode&&&&&&&&&&&&&&Archive Mode
Automatic archival&&&&&&&&&&&&&Enabled
Archive destination&&&&&&&&&&&&/u01/newccs_archive
Oldest online log sequence&&&&&27622
Next log sequence to archive&&&0
Current log sequence&&&&&&&&&&&27624
Oracle&归档与非归档的切换
要强调的一点,在切换为归档之前一定要指定归档目录,即log_archive_dest_1。&这个目录用来指定归档文件存放的位置,如果不指定,就会放到闪回区。&闪回区默认只有2G,一但满了之后就会出现问题,如导致数据库hang或者不能启动。&这个也是初学者容易犯的问题。&要是遇到这种问题,处理方法参考我的blog:
ORA-16014: log string sequence# string not archived, no available destinations Flash Recovery Area&空间不足
删除归档日志的脚本,请参考BLog:
6.&开启Flashback
Flashback&技术是以Undo segment中的内容为基础的,&因此受限于UNDO_RETENTON参数。要使用flashback&的特性,必须启用自动撤销管理表空间。
在Oracle 10g中,&Flash back家族分为以下成员:&Flashback Database,&Flashback Drop,Flashback Query(分Flashback Query,Flashback Version Query,&Flashback Transaction Query&三种)&和Flashback Table。
Flashback&是不完全恢复的一种补充,它很灵活。但是Flashback Database默认是关闭的,所以我们要启动它。
要注意的是:启动它必须在mount&状态
SQL& startup mount
SQL& select name, current_scn, flashback_on from v$
NAME&&&&&&CURRENT_SCN FLASHBACK_ON
--------- ----------- ------------------
ORCL&&&&&&&&&&&&&&&&0 NO
SQL& alter d
数据库已更改。
SQL& select name, current_scn, flashback_on from v$
NAME&&&&&&CURRENT_SCN FLASHBACK_ON
--------- ----------- ------------------
ORCL&&&&&&&&&&&&&&&&0 YES
Oracle Flashback&技术&总结
7.&检查redo
Redo&里记录的是数据库的操作。&在相关事务操作的时候,都会是先写redo,等redo&写完会再去修改相应的数据。&这也Oracle的一种机制。如果出现问题,也可以通过这些记录进行恢复。
Redo&默认有3个组,每个组有一个文件,每个文件50M。
&&&&&&&将redo log&的文件大小改成100M一个。&每组创建2个成员。&最好将每组的2个成员放在不同的磁盘上。&因为写redo&的时候是并行的,放在一起,可能会出现等待事件:Log file parallel write。
&&&&&&&关于等待事件,参考:
&&&&&&&&&&&&&&Oracle&常见的33个等待事件
&&&&&&&&&&&&&&
与控制文件一样,如果每组具有多个成员(事实也应当如此),那么仍然不必担心保持这些成员同步的问题。LGWR能够确保对所有成员进行并行写操作,从而使这些成员完全相同。如果丢失某个组的一个成员,只要还存在其他成员,数据库仍然能够继续运行。
Redo&空间的不足还会导致一种警告:&checkpoint not complete.&具体参考Blog:
Redo Log&和Checkpoint not complete
RedoLog Checkpoint&和&SCN关系
显示当前归档日志组和成员:
SQL& select group#,member from v$
GROUP# MEMBER
---------- ---------------------------------------------------
&&3&&&&&&&&&&&&&&&D:/ORACLE/PRODUCT/10.2.0/ORADATA/ORCL/REDO03.LOG
&&2&&&&&&&&&&&&&&&D:/ORACLE/PRODUCT/10.2.0/ORADATA/ORCL/REDO02.LOG
&&1&&&&&&&&&&&&&&&D:/ORACLE/PRODUCT/10.2.0/ORADATA/ORCL/REDO01.LOG
添加redo log组:
SQL& alter database add logfile group 4 ('D:/ORACLE/PRODUCT/10.2.0/ORADATA/ORCL/REDO04.LOG') size 10m;
SQL& select group#,member from v$
&&&&GROUP# MEMBER
---------- ----------------------------------------------------
&&&&&&&&&3 D:/ORACLE/PRODUCT/10.2.0/ORADATA/ORCL/REDO03.LOG
&&&&&&&&&2 D:/ORACLE/PRODUCT/10.2.0/ORADATA/ORCL/REDO02.LOG
&&&&&&&&&1 D:/ORACLE/PRODUCT/10.2.0/ORADATA/ORCL/REDO01.LOG
&&&&&&&&&4 D:/ORACLE/PRODUCT/10.2.0/ORADATA/ORCL/REDO04.LOG
检查新加入的log状态
SQL& select group#,sequence#,bytes,members,status from v$
&&&&GROUP#&&SEQUENCE#&&&&&&BYTES&&&&MEMBERS STATUS
---------- ---------- ---------- ---------- ----------------
&&&&&&&&&1&&&&&&&&&17&&&&&&&&&&&&&1 CURRENT
&&&&&&&&&4&&&&&&&&&&0&&&&&&&&&&&&&1 UNUSED
&&&&&&&&&3&&&&&&&&&16&&&&&&&&&&&&&1 INACTIVE
&&&&&&&&&2&&&&&&&&&15&&&&&&&&&&&&&1 INACTIVE
&&&&(虽然这里是UNUSED的状态,但是通过切换日志文件或者数据库自动切换,该文件会被改为active状态)
添加新的文件到group 1
&&&&SQL& alter database add logfile member 'D:/ORACLE/PRODUCT/10.2.0/ORADATA/ORCL/REDO05.LOG' to group 1;
&&&&&&&SQL& select group#,sequence#,bytes,members,status from v$
&&&&GROUP#&&SEQUENCE#&&&&&&BYTES&&&&MEMBERS STATUS
---------- ---------- ---------- ---------- ----------------
&&&&&&&&&1&&&&&&&&&17&&&&&&&&&&&&&2 CURRENT
&&&&&&&&&4&&&&&&&&&&0&&&&&&&&&&&&&1 UNUSED
&&&&&&&&&3&&&&&&&&&16&&&&&&&&&&&&&1 INACTIVE
&&&&&&&&&2&&&&&&&&&15&&&&&&&&&&&&&1 INACTIVE
&&&&这里的group组中的member就变为2;
&&&&&&&SQL& select member from v$logfile where group#=1;
-------------------------------------------------------
D:/ORACLE/PRODUCT/10.2.0/ORADATA/ORCL/REDO01.LOG
D:/ORACLE/PRODUCT/10.2.0/ORADATA/ORCL/REDO05.LOG
删除新增的group 4
&&&&SQL& alter database drop logfile group 4;
删除新增的group 1的logfile;
&&&&SQL& alter database drop logfile member 'D:/ORACLE/PRODUCT/10.2.0/ORADATA/ORCL/REDO05.LOG';
清空logfile:
&&&&SQL& alter database clear logfile 'D:/ORACLE/PRODUCT/10.2.0/ORADATA/ORCL/REDO01.LOG';
&&&&&&&SQL& select group#,sequence#,bytes,members,status from v$
&&&&GROUP#&&SEQUENCE#&&&&&&BYTES&&&&MEMBERS STATUS
---------- ---------- ---------- ---------- ----------------
&&&&&&&&&1&&&&&&&&&17&&&&&&&&&&&&&1 ACTIVE
&&&&&&&&&2&&&&&&&&&18&&&&&&&&&&&&&1 CURRENT
&&&&&&&&&3&&&&&&&&&&0&&&&&&&&&&&&&1 UNUSED
8.&设置CONTROL_FILE_RECORD_KEEP_TIME&参数
&&&&&&&该参数设置控制文件中存储备份记录的时间,在用RMAN的时候会涉及到这个参数。&备份记录包括完全的数据库备份记录,以及指定的数据文件,控制文件,参数文件和归档目录的备份记录。数据库参数CONTROL_FILE_RECORD_KEEP_TIME以天为单位(默认值为7天),因此在默认情况下,Oracle&会将RMAN备份和恢复记录保存7天。&可以将该参数设置为0到365之间的任意值。
&&&&&&&CONTROL_FILE_RECORD_KEEP_TIME参数会影响一系列的数据库操作。&首先,产生RMAN备份时,由于与这些备份相关的记录存储在控制文件中,所以该参数直接影响数据库控制文件的大小。&备份记录将不断的保存在控制文件中,控制文件将耗尽空间。&这时,Oracle&会扩展控制文件来调整备份记录所需的存储空间。&此外,设置为0时,将禁止扩展控制文件,并且会使得RMAN备份的保存周期不稳定。
&&&&&&&建议将CONTROL_FILE_RECORD_KEEP_TIME&参数设置为不小于选中数据库的备份保存周期,否则就可能在备份介质上有数据库备份,但是控制文件不存在与备份相关的备份记录,在这种情况下,将无法恢复这些较早的文件。这个参数根据自己的本份策略来决定。
SQL& select name,value from v$parameter where name='control_file_record_keep_time';
NAME&&&&&&&&&&&&&&&&&&&&&&&&&&&VALUE
------------------------------ -------------------------------------------------
control_file_record_keep_time&&&7
SQL& alter system set control_file_record_keep_time=20;
系统已更改。
SQL& show parameter control_file_record_keep_time
NAME&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&TYPE&&&&&&&&VALUE
------------------------------------ ----------- ------------------------------
control_file_record_keep_time&&&&&&&&integer&&&&&20
关于RMAN与control_file_record_keep_time的内容参考:
&&&&&&&RMAN&系列(二)&---- RMAN&设置和配置
9.&设置open_links_per_instance&和&open_links&参数
&&&&&&&关于这2个参数的说明,参考Blog:
&&&&&&&open_links_per_instance&和&open_links&参数说明
&&&&&&&这2个参数修改之后,需要重启才能生效,所以,在安装DB的时候,就把这个参数修改了。&默认值是4,如果用到话就太小了。&所以在安装的时候,就给修改了。&修改建议值:100。
&&&&&&&SQL& alter system set open_links=100 scope=
&&&&&&&系统已更改。
10.修改用户的profile 参数
SQL&alter profile PROFILE_PERSONAL limit FAILED_LOGIN_ATTEMPTS UNLIMITED;
11.&部署statistic Job
&&&&&&&Oracle 10g statistic数据统计,Oracle会根据这些统计信息来决定是走RBO(Rule-BasedOptimization),还是走CBO(Cost-BasedOptimization),会去选择哪种执行计划更划算,影响是否走相关的索引等.如果是CBO的话,它依靠准确的(或者说比较准确的)统计信息来产生优化的执行路径,如果没有做过统计,CBO也就没有做cost评估的依据,所以虽然是CBO,但是实际上还是用RBO了,而且如果不常做统计的话,由于CBO是以统计为依据的,所以这时CBO的依据信息有问题,CBO也会不准。&所以&DBA&需要确保定期收集统计信息,创建另一个执行核对清单。
&&&&&&&更多内容,参考:
&&&&&&&&&&&&&&Oracle 10g Statistic数据统计
&&&&&&&&&&&&&&
11.1&创建存储过程:
CREATE OR REPLACE PROCEDURE USER.&ANALYZEDB&
&&&CURSOR get_ownertable
&&&&&&SELECT table_name
&&&&&&&&FROM user_
&&&ownertable&&&get_ownertable%ROWTYPE;
&&&OPEN get_
&&&&&&FETCH get_ownertable
&&&&&&&INTO
&&&&&&EXIT WHEN get_ownertable%NOTFOUND;
&&&&&&EXECUTE IMMEDIATE&&&&'analyze table '
&&&&&&&&&&&&&&&&&&&&&&&&|| ownertable.table_name
&&&&&&&&&&&&&&&&&&&&&&&&|| ' compute statistics for table for all indexes for all indexed columns ';
&&&END LOOP;
&&&WHEN OTHERS
&&&&&&RAISE;
11.2.&将存储过程写进JOB
&&X NUMBER;
&&SYS.DBMS_JOB.SUBMIT
&&( job&&&&&&&=& X
&&&,what&&&&&&=& 'ANALYZEDB;'
&&&,next_date =& to_date('14-10-:00','dd/mm/yyyy hh24:mi:ss')
&&&,interval&&=& 'trunc(sysdate + 7) + 6/24'
&&&,no_parse&&=& FALSE
&&SYS.DBMS_OUTPUT.PUT_LINE('Job Number is: ' || to_char(x));
&&&&&&&具体多长时间执行一次,根据自己的业务来决定,&这个Job&对DB的影响是比较大的,找个业务不忙的时候来执行。
12.&注意对索引的维护
&&&&&&&这块具体参考Blog:
&&&&&&&&&&&&&&Oracle&索引的维护
&&&&&&&&&&&&&&
13.&部署监控系统
这里的监控系统包括磁盘空间,alert log日志等。&以前整理的一篇blog里有8个DBA&常用的脚本。&可以参考:
8个DBA最常用的监控Oracle数据库的常用shell脚本
在补充几个脚本,很简单。
13.1&监控磁盘空间并发送到邮箱:
Checkdisk.sh
df -k &/data/app/scripts/monitor/DiskSpace.log
/usr/bin/mailx -s &Whitney(Disk Space)& tianlesoftware@ & /data/app/scripts/monitor/DiskSpace.log
13.2 Windows&下,如果alert&的日志文件日志文件如果太大,查看起来非常麻烦,所以每天进行一次备份,这样只需要查看一天的即可.
back_log_file.bat
rem&复制日志文件并改名,请根据各区SID情况修改脚本
set year=%DATE:~0,4%
set month=%DATE:~5,2%
set day=%DATE:~8,2%
copy D:/oracle/admin/wbi/bdump/alert_wbi.log D:/oracle/admin/wbi/bdump/alert_wbi&%year%%month%%day%&.log
rem&清空日志文件
rem&下面一句是用来清空alert_wbi.log的
cd. &D:/oracle/admin/wbi/bdump/alert_wbi.log
14.&制定备份策略
主要指制定RMAN&备份策略。&RMAN&备份的东西,细讲起来也很多。&具体参考:
&&&&&&&&&&&&&&如何&搭建&RMAN&备份平台
&&&&&&&&&&&&&&
14.&做DG,RAC等高可用性并对相关环境进行监控
&&&&&&&这块的东西暂时还没有整理全,等以后整理全了在补充。
DG,RAC&的安装请参考我的Blog:
Oracle Data Gurad -- Logical Standby&相关说明
Oracle Data Gurad Physical Standby&相关说明
RAC&的一些概念性和原理性的知识
RAW+ASM&的RAC&安装文档
OCFS2+ASM&的RAC安装文档
Oracle删除归档日志脚本,请参考BLog:
补充一个脚本:
对DG&系统的监控还有一个小脚本。批处理格式的。比较方便:
conn sys/PWD@SID as sysdba
host title&数据库日常检查
column dest_name format a30
column destination format a20
column MEMBER format a45
column&归档地&format a20
column TABLESPACE_NAME format a10
column FREE_RATE format a10
prompt ****************************&实&例&状&态&************************************;
select instance_name&实例名,version&版本,status&状态,database_status&数据库状态&from v$
prompt ****************************&数据库状态&*************************************;
select name,log_mode&归档模式,open_mode&打开模式&from v$
prompt ****************************&控制文件状态&***********************************;
column name format a40
select status,name from v$
prompt ****************************&日志文件状态&***********************************;
select GROUP#,status,type,member from v$
prompt*****************************&归档目的地状态&*********************************;
select dest_name ,status&状态,database_mode&数据库模式,destination&归档地&from v$archive_dest_status where dest_id in&&('1','2');
select '************数据库已连续运行&'|| round(a.atime-b.startup_time)||'&天&'||'*******************************************' from(select sysdate atime from dual) a,v$
prompt*****************************&会&&话&&数&*************************************;
select sessions_current&当前会话数,sessions_highwater&实例最高值&from v$
prompt**********************&表空间监控(FREE_RATE小于10%为异常) ********************;
select a.tablespace_name, round(a.total_size) &total_size(MB)&,
round(a.total_size)-round(b.free_size,3) &used_size(MB)&,
round(b.free_size,3) &free_size(MB)&, round(b.free_size/total_size*100,2)||'%' free_rate
from ( select tablespace_name, sum(bytes)/ total_size
&&&&&&&from dba_data_files
&&&&&&&group by tablespace_name ) a,
&&&&&&&( select tablespace_name, sum(bytes)/ free_size
&&&&&&&&&from dba_free_space
&&&&&&&&&group by tablespace_name ) b
&&&&&&&where a.tablespace_name = b.tablespace_name(+);
prompt ****************************&表空间OFFLINE(显示为空正常) ********************;
select tablespace_name&表空间名,status&状态&from dba_tablespaces where status='OFFLINE';
prompt **************************** SEQUENCE同步数&*********************************;
select max(sequence#)from v$log_
CONN sys/PWD@SID_ST
prompt ****************************&备库SEQUENCE同步数&*****************************;
select max(sequence#)from v$log_
prompt ****************************&备库日志未应用(显示为空正常) *******************;
select sequence#,applied from v$archived_log where applied='NO' and sequence#&2453;
prompt ****************************&备库日志应用(显示最近十个日志) *****************;
select * from(select sequence#,applied from v$archived_log order by sequence# desc) where rownum&=10;
set time on
disconnect
sqlplus /nolog @check.sql
8.&定期的做AWR,statspack&分析
Oracle AWR&介绍
statspack安装使用&和&report&分析
&&&&&&&作为一个DBA,我们要考虑的是如何保证系统7*24的正常运行,如何保证系统高效的运行,还有就是保证数据的安全性。&所有的监控都是辅助的,关键还得靠DBA,需要DBA的经验来处理各种异常情况。就像电视剧《士兵突击》里老A&袁朗&讲的一句话:战争的最后,&还是人与人之间的较量,同样对数据库的维护最终还是要靠DBA,用存储也罢,高性能的服务器也罢,使用更健壮的监控的系统也罢。但这些都是机器,谁也不能保证这些硬件或者软件100%&不出问题,这些只是我们的工具,就像士兵使用的抢一样,保养的好,就好使,但也不能保证它不出问题。&指不定哪天就出先故障或者出现bug。所以经验对一个DBA来说,是一笔财富。
最后强调一点,要养成做备份的习惯,慎用RM&命令。&只要有备份,&就还有挽回的余地。&不经想起去年帮一个朋友恢复过的一个数据库。&当时的情况是:&数据库除了半年前的一次冷备外,没有其他的备份,也没有归档。然后有一天出了问题,朋友折腾了半天,实在搞不定。&拿到这样的库,我也没办法,最后用了最近一次的冷备还原了下。&数据丢失了半年。教训也是深刻的。
这也是中国很多小公司或者企业的现状,不注重数据库的维护,只要能运行就可以了。对与这种情况,我也只能说祈求老天,不让数据库库出问题,因为出问题就是灾难。
我也是刚踏上DBA的路,希望能在这条路上能走的更远,借用网友的吉言:成为明日之eygle(Oracle ACE,OCM).
&&相关文章推荐
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:706493次
积分:9479
积分:9479
排名:第1884名
原创:181篇
转载:559篇
评论:15条
(1)(7)(2)(2)(8)(36)(2)(3)(3)(2)(2)(3)(4)(10)(18)(4)(6)(2)(37)(70)(53)(457)(2)(8)

我要回帖

更多关于 本地搭建mysql数据库 的文章

 

随机推荐