创建Logical Standby

1、Create a Physical Standby Database
具体见linux下使用rman配置standby data guard(11gR2版)
2、Stop Redo Apply on the Physical Standby Database
在primary database上执行ALTER DATABASE RECOVER MANAGED STANDBY DATABASE CANCEL;
3、修改primary上的参数文件并建立LogMiner字典

LOG_ARCHIVE_DEST_1=
'LOCATION=/archive/orcl/
VALID_FOR=(ONLINE_LOGFILES,ALL_ROLES)
DB_UNIQUE_NAME=orcl'
LOG_ARCHIVE_DEST_3=
'LOCATION=/archive/standby/orcl/
VALID_FOR=(STANDBY_LOGFILES,STANDBY_ROLE)
DB_UNIQUE_NAME=orcl'
LOG_ARCHIVE_DEST_STATE_3=ENABLE
--LOG_ARCHIVE_DEST_2未作修改没有列出

执行EXECUTE DBMS_LOGSTDBY.BUILD;
4、Physical Standby Database Convert to a Logical Standby Database(standby上执行)
ALTER DATABASE RECOVER TO LOGICAL STANDBY db_name;
5、修改Logical standby database参数

LOG_ARCHIVE_DEST_1=
'LOCATION=/archive/orcl/
VALID_FOR=(ONLINE_LOGFILES,ALL_ROLES)
DB_UNIQUE_NAME=boston'
LOG_ARCHIVE_DEST_2=
'SERVICE=orcl ASYNC
VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE)
DB_UNIQUE_NAME=orcl'
LOG_ARCHIVE_DEST_3=
'LOCATION=/archive/standby/xff/
VALID_FOR=(STANDBY_LOGFILES,STANDBY_ROLE)
DB_UNIQUE_NAME=xff'
LOG_ARCHIVE_DEST_STATE_1=ENABLE
LOG_ARCHIVE_DEST_STATE_2=ENABLE
LOG_ARCHIVE_DEST_STATE_3=ENABLE

6、重启logical standby database
STARTUP MOUNT;
ALTER DATABASE OPEN RESETLOGS;
7、添加standby logfile文件
具体见oracle之data guard(2)——物理standby和primary切换中的添加standby redo部分
8、开启和关闭应用
alter database start logical standby apply immediate;–开启
alter database recover managed standby database cancel;–关闭
9、相关事宜说明
主要参考oracle 的online documentation 11g release 2文档中的data guard部分
注意11g这部分中和10g的不同,多了些新特新,不用新建密码文件

sql server 2005复制功能

一、理论知识
1、复制数据库模型概念

1)发布服务器
发布服务器是一种数据库实例,它通过复制向其他位置提供数据。发布服务器可以有一个或多个发布,每个发布定义一组要复制的具有逻辑关系的对象和数据。
2)分发服务器
分发服务器也是一种数据库实例,它起着存储区的作用,用于复制与一个或多个发布服务器相关联的特定数据。每个发布服务器都与分发服务器中的单个数据库(称作分发数据库)相关联。分发数据库存储复制状态数据和有关发布的元数据,并且在某些情况下为从发布服务器向订阅服务器移动的数据起着排队的作用。在很多情况下,一个数据库服务器实例充当发布服务器和分发服务器两个角色。这称为“本地分发服务器”。当发布服务器和分发服务器按各自的数据库服务器实例配置时,把分发服务器称为“远程分发服务器”。
3)订阅服务器
订阅服务器是接收复制数据的数据库实例。订阅服务器可以接收来自多个发布服务器和发布的数据。根据所选的复制类型,订阅服务器还可以将数据更改传递回发布服务器或者将数据重新发布到其他订阅服务器。
4)项目
项目用于标识发布中包含的数据库对象。一次发布可以包含不同类型的项目,包括表、视图、存储过程和其他对象。当把表作为项目发布时,可以用筛选器限制发送到订阅服务器的数据的列和行。
5)发布
发布是一个数据库中的一个或多个项目的集合。将多个项目分组成一个发布,使得更便于指定一组作为一个单元复制的、具有逻辑关系的数据库对象和数据。
6)订阅
订阅是把发布副本传递到订阅服务器的请求。订阅定义将接收的发布和接收的时间、地点。有两种类型的订阅:推送订阅和请求订阅。
2、复制代理概述
1)快照代理
快照代理通常与各种类型的复制一起使用。快照代理准备已发布表的架构和初始数据文件以及其他对象、存储快照文件并记录分发数据库中的同步信息。快照代理在分发服务器上运行
2)日志读取器代理
日志读取器代理与事务性复制一起使用。它将发布服务器上的事务日志中标记为复制的事务移至分发数据库中。使用事务性复制发布的每个数据库都有自己的日志读取器代理,该代理运行于分发服务器上并与发布服务器连接(分发服务器与发布服务器可以是同一台计算机)。
3)分发代理
分发代理与快照复制和事务性复制一起使用。它将初始快照应用于订阅服务器,并将分发数据库中保存的事务移至订阅服务器。分发代理既可以运行于分发服务器(对于推送订阅),也可运行于订阅服务器(对于请求订阅)。
4)合并代理
合并代理与合并复制一起使用。它将初始快照应用于订阅服务器,并移动和协调所发生的增量数据更改。每个合并订阅都有自己的合并代理,该代理同时连接到发布服务器和订阅服务器并对它们进行更新。合并代理既可以运行于分发服务器(对于推送订阅),也可以运行于订阅服务器(对于请求订阅)。默认情况下,合并代理将订阅服务器上的更改上载到发布服务器,然后将发布服务器上的更改下载到订阅服务器。
5)队列读取器代理
队列读取器代理与包含排队更新选项的事务性复制一起使用。该代理运行于分发服务器,并将订阅服务器上所做更改移回至发布服务器。与分发代理和合并代理不同,只有一个队列读取器代理的实例为给定分发数据库的所有发布服务器和发布提供服务。
6)复制维护作业
复制包含许多执行计划维护和按需维护的维护作业
3、复制类型概述
1)事务复制概述
事务性复制通常从发布数据库对象和数据的快照开始。创建了初始快照后,接着在发布服务器上所做的数据更改和架构修改通常在修改发生时(几乎实时)便传递给订阅服务器。数据更改将按照其在发布服务器上发生的顺序和事务边界,应用于订阅服务器,因此,在发布内部可以保证事务的一致性。
事务性复制通常用于服务器到服务器环境中,在以下各种情况下适合采用事务性复制:
希望发生增量更改时将其传播到订阅服务器。
从发布服务器上发生更改,至更改到达订阅服务器,应用程序需要这两者之间的滞后时间较短。
应用程序需要访问中间数据状态。例如,如果某一行更改了五次,事务性复制将允许应用程序响应每次更改(例如,激发触发器),而不只是响应该行最终的数据更改。
发布服务器有大量的插入、更新和删除活动。
发布服务器或订阅服务器不是 SQL Server 数据库(例如,Oracle)。
默认情况下,事务性发布的订阅服务器应视为只读,因为更改将不会传播回发布服务器。但是,事务性复制确实提供了允许在订阅服务器上进行更新的选项。
2)合并复制概述
与事务性复制相同,合并复制通常也是从发布数据库对象和数据的快照开始,并且用触发器跟踪在发布服务器和订阅服务器上所做的后续数据更改和架构修改。订阅服务器在连接到网络时将与发布服务器进行同步,并交换自上次同步以来发布服务器和订阅服务器之间发生更改的所有行。
合并复制通常用于服务器到客户端的环境中。合并复制适用于下列各种情况:
多个订阅服务器可能会在不同时间更新同一数据,并将其更改传播到发布服务器和其他订阅服务器。
订阅服务器需要接收数据,脱机更改数据,并在以后与发布服务器和其他订阅服务器同步更改。
每个订阅服务器都需要不同的数据分区。
可能会发生冲突,并且在冲突发生时,您需要具有检测和解决冲突的能力。
应用程序需要最终的数据更改结果,而不是访问中间数据状态。例如,如果在订阅服务器与发布服务器进行同步之前,订阅服务器上的行更改了五次,则该行在发布服务器上仅更改一次来反映最终数据更改(也就是第五次更改的值)。
合并复制允许不同站点自主工作,并在以后将更新合并成一个统一的结果。由于更新是在多个节点上进行的,同一数据可能由发布服务器和多个订阅服务器进行了更新。因此,在合并更新时可能会产生冲突,合并复制提供了多种处理冲突的方法。
3)快照复制概述
快照复制将数据以特定时刻的瞬时状态分发,而不监视对数据的更新。发生同步时,将生成完整的快照并将其发送到订阅服务器。
快照复制可由其自身使用,但是快照处理(负责创建由发布所指定的所有对象和数据的副本)通常还用于为事务性发布与合并发布提供初始的数据和数据库对象集
当符合以下一个或多个条件时,使用快照复制本身是最合适的:
很少更改数据。
在一段时间内允许具有相对发布服务器已过时的数据副本。
复制少量数据。
在短期内出现大量更改。
在数据更改量很大,但很少发生时,快照复制是最合适的。例如,如果某销售组织维护一个产品价格列表且这些价格每年要在固定时间进行一两次完全更新,那么建议在数据更改后复制完整的数据快照。对于给定的某些类型的数据,更频繁的快照可能也比较适合。例如,如果一天中在发布服务器上更新相对小的表,但可以接受一定的滞后时间,则可以在夜间以快照形式传递更改。
发布服务器上快照复制的连续开销低于事务性复制的开销,因为不用跟踪增量更改。但是,如果要复制的数据集非常大,那么若要生成和应用快照,将需要使用大量资源。评估是否使用快照复制时,需要考虑整个数据集的大小以及数据的更改频率。
二、复制功能配置
1、建立一个 WINDOWS 用户,设置为管理员权限,并设置密码,作为发布快照文件的有效访问用户,赋予管理员权限。(发布和订阅服务器)
2、在SQL SERVER下实现发布服务器和订阅服务器的通信正常(即可以互访)。(发布和订阅互测)
3、新建文件夹并设置1中用户有权限访问(发布服务器,注其他网络设备也可以)
4、设置SQL代理(SQLSERVERAGENT)服务的登录为1设置的用户(发布和订阅服务器)
5、设置SQL server的协议,除了VIA协议之外的其他几项都启用,并且重启SQL serve(发布和订阅服务器)
6、设置SQL server的身份验证模式,即为sql server和windows都能访问模式(发布和订阅服务器)
7、相互注册对方的机器,操作:视图—-单击以注册服务器—-右键数据库引擎—-新建服务器注册—–填写要注册的远程服务器名称——身份验证选——SQL Server验证(发布和订阅服务器)
8、配置分发服务器:复制–右键新建分发服务器–选择快照文件夹3–根据提示之完成
9、配置发布服务器:右键本地发布——选择发布数据库——-选择发布类型——-选择订阅服务器类型——-选择要发布的对象——设置快照代理(使用SQL Server 代理帐户)——-填写发布名称
10、配置订阅服务器:右键本地订阅——–选择发布服务器(使用机器名)——-选择订阅方式(如果是在服务器方订阅的话选择推送订阅反之选择请求订阅)——-填加订阅服务器——–选择代理计划(一般选择连续运行)

js控制网页在特定iframe中打开

我们在编写系统管理后台时,很多时候会使用到iframe进行管理,但是有有个问题就是有些时候比较聪明的用户会绕过我们的iframe的父页面,而直接打开了iframe中src的内容,如果这样,重则给我们的系统带来破坏,轻则使我们系统的有些功能不能正常使用,今天用js写了一个控制脚本,可以让用户无法绕开iframe的父页而直接打开子页的内容进行浏览,主要通过在iframe在子父页面各加一段js脚本实现控制
父页面

function check_iframe() {
            var url = location.search;//包括?的参数
            if (url.indexOf("?")!=-1) {
                var str = url.substr(1); //传输过来的url
                document.getElementById("main").src = decodeURI(str);
            }
        }

说明:1、要使用onload或者类此这个事件加载该函数
2、main表示父页面中要显示子页面的iframe的id
3、传过来的url是通过get方式,使用encodeURI编码的
子页面

function check_page() {
    var iframe_url = document.referrer.toLowerCase();
    if (iframe_url == "") {
        document.location.href = "default.aspx?" + encodeURI(document.location.href);
    }
//防止在子页面中点击本页面自身超链时再次打开一个iframe
    else if (iframe_url.indexOf("default.aspx") == -1 && document.location.href.toLowerCase().indexOf(iframe_url) == -1)
    { document.location.href = "default.aspx?" + encodeURI(document.location.href); }
}

说明:1、要使用onload或者类此这个事件加载该函数
2、supadmin.html表示是含有该页面显示的iframe的父页面
3、使用encodeURI对子页面的url进行了编码,使用get方式传送给父页面

mysql主从复制

1、分别在两台linux服务器上安装相同版本的mysql数据库
我使用的是最新的mysql 5.1.50 redhat版的
安装命令 rpm -ivh mysql.rpm
按照提示完成配置工作
2、建立复制账户
GRANT REPLICATION SLAVE ON *.* TO ‘mysql1’@’%’ IDENTIFIED BY ‘xifenfei’;
3、拷贝my-medium.cnf文件到/etc/my.cnf并修改相关参数
1)主服务器(确定这两个参数启动)
[mysqld]
log-bin
server-id=1
2)从服务器
server-id=2
方案一:
master-host =192.168.137.134
master-user =mysql1
master-password =xifenfei
master-port = 3306(默认可以不设置)
方案二:在mysql中执行
CHANGE MASTER TO
-> MASTER_HOST=’192.168.137.134′,
-> MASTER_USER=’mysql1′,
-> MASTER_PASSWORD=’xifenfei’,
-> MASTER_LOG_FILE=’recorded_log_file_name’,[可选]
-> MASTER_LOG_POS=recorded_log_position;[可选]
4、建立主服务器快照
可以使用拷贝文件实现
FLUSH TABLES WITH READ LOCK;
使用tar打包,复制到从服务器上
SHOW MASTER STATUS;–记录下当前快照是的日志文件情况
UNLOCK TABLES;
在从服务器上解压tar包到数据文件目录下
5、启动主从服务器
在从服务器上执行
SHOW MASTER STATUS;
查看状态,如果都和主服务器刚刚记录下来的一致表明配置成功,也可以通过修改主数据库数据,然后从数据库查看,测试是否成功!
SHOW PROCESSLIST\G查看主从服务器相关状态
注:如果从用方案二配置从服务器,在启动的时候,可以通过START SLAVE;启动从服务器线程。
6、总结
从总体说来看,mysql的主从复制同步,比oracle的data guard配置起来简单多了,但是同时也表现出来了,没有oracle的强大,这个只是相当于oracle中的逻辑复制功能。

达梦数据库命令行工具

1、数据库初始化工具 initdb

initdb -I c:\dmdb\dm.ini -P c:\dmdb\data -Es16 -PS 8 -SC Y -NU N -UC 1
其实就是通过修改安装目录下的dm.ini文件而已(基本没用,除了重试密码)
2、交互式工具 Isql

这个和sqlplus有几分相似,具体功能还没有测试,整体比较喜欢
3、backup和restore数据库备份与恢复工具
backup参数意义

backup c:\dmdbms\bin\dm.ini xifenfei xifenfei.bak
restore参数意义

restore c:\dmdbms\bin\dm.ini C:\dmdbms\data\xifenfei.bak
在恢复的过程中很多提示,不爽,不能在参数中全部指定吗?
总体感觉还可以,但是没有oracle中的rman灵活,而且只能进行冷备份,这个不爽
4、impdb和expdb导入和导出工具

expdb USERID=SYSDBA/xifenfei FILE=e:\back.bak LOG=e:\log.txt FULL=Y

impdb USERID=SYSDBA/xifenfei FILE=e:\back.bak LOG=e:\log.txt FULL=Y
总体来说,这个是命名基本上和oracle的exp/imp差不多,应该会喜欢
5、文本文件导入工具
命令参数

控制文件参数

和oracle中的loader工具非常相似,不过我想用的应该不会太多

oracle之data guard(2)——物理standby和primary切换

一、primary库上操作
1、查看primary库转换状态
select switchover_status from v$database
如果是TO STANDBY可以直接进入步骤3
如果是SESSIONS ACTIVE进入步骤2
2、强制把primary设置为standby模式
ALTER DATABASE COMMIT TO SWITCHOVER TO PHYSICAL STANDBY WITH SESSION SHUTDOWN;
如果更加强制性,则使用
ALTER DATABASE COMMIT TO SWITCHOVER TO PHYSICAL STANDBY WITH SESSION SHUTDOWN NOWAIT;
3、正常方式进入standby模式
ALTER DATABASE COMMIT TO SWITCHOVER TO PHYSICAL STANDBY;
4、重启数据库,置于mount状态
5、再次查看witchover_status状态
如果为TO PRIMARY ,表示primary切换成standby成功,如果不是请查看配置文件
二、在原standb库上配置
1、查看witchover_status状态
select switchover_status from v$database
如果是TO PRIMARY正常
如果是SESSIONS ACTIVE在2的命令后面加上 WITH SESSION SHUTDOWN ( nowait)
2、standby库切换为primary库
alter database commit to switchover to primary;
3、关闭再打开数据库
shutdown immediate;
startup;
三、测试
在现在的primary库上切换日志,在standby上查看
主库:alter system switch logfile;select name from v$archived_log;
备份库: select name from v$archived_log;
如果两者结果一致,表示切换成功
四、从MAXIMUM PERFORMANCE到MAXIMUM PROTECTION的切换
1、添加standby redo
数量:(maximum number of logfiles for each thread + 1) * maximum number of threads
alter database add standby logfile thread 1 ‘C:\oracle\product\10.2.0\oradata\orcl\redo04.log’ size 50m;
note:和redo log等大,数量每个thread比redo log多一个,最好standby和primary都添加,因为要转换
2、关闭数据库,置于mount状态
log_archive_dest_2修改为
alter system set log_archive_dest_2=’service=orcl lgwr sync affirm valid_for=(online_logfiles,primary_role) db_unique_name=orcl’;
主要是: lgwr sync affirm
3、设置为maximize protection
alter database set standby database to maximize protection;
4、open数据库并测试
测试 主要是通过v$archived_log视图实现
使用select protection_mode from v$database;查看数据库保护状态
五、MAXIMUM PROTECTION模式下primary、standby 库的相互切换
1、在primary库上配置
1)关闭除本操作连接外的所有数据库连接
2)alter database commit to switchover to physical standby;
3)select t.PROTECTION_MODE,t.DATABASE_ROLE from v$database t;

如上图表示成功
2、在standby上操作
1)alter database commit to switchover to physical standby;
2)ALTER DATABASE COMMIT TO SWITCHOVER TO PRIMARY;
3)shutdown immedate;startup mount;
4)alter system set log_archive_dest_2=’service=xff lgwr sync affirm valid_for=(online_logfiles,primary_role) db_unique_name=xff’;(修改为同步传输)
5)alter database open;

如上图表示成功

oracle之data guard(1)——物理standby建立

一、primary数据库配置及相关操作
1、数据库启动强制归档模式
alter database force logging;
2、确保数据库是archivelog模式

--archive log list查看是否已经归档
--如果不是使用下面语句进行设置
SHUTDOWN IMMEDIATE;
STARTUP MOUNT;
ALTER DATABASE ARCHIVELOG;
ALTER DATABASE OPEN;

3、创建standby 数据库控制文件
alter database create standby controlfile as ‘c:\orcl.ctl’;
4、修改初始化参数文件,并重新创建spfile

*.db_name='orcl'
db_unique_name='orcl'
log_archive_config='dg_config=(orcl,xff)'
*.log_archive_dest_1='location=C:\archive\orcl\ valid_for=(all_logfiles,all_roles) db_unique_name=orcl'
*.log_archive_dest_2='service=xff lgwr async valid_for=(online_logfiles,primary_role) db_unique_name=xff'
*.log_archive_dest_state_1=enable
*.log_archive_dest_state_2=enable
fal_server=xff
fal_client=orcl
db_file_name_convert='c:\xff\data\','C:\oracle\product\10.2.0\oradata\orcl'
log_file_name_convert='c:\xff\data\','C:\oracle\product\10.2.0\oradata\orcl'
standby_file_management=auto

5、配置listener 及net service names(我建议使用net manager)
最好 执行lsnrctl stop lsnrctl start重新启动监听程序
6、关闭数据库并备份。
二、Standby数据库配置及相关操作
1、创建进程和密码文件(注意密码要和primary中的sys的密码一致)
oradim -new -sid xff -intpwd oracle(密码为oracle)(当然也可以把primar中的密码文件改名拷贝过来)
2、创建文件夹,并拷贝备份的归档文件和数据库文件
3、修改初始化参数文件(使用刚刚修改的primary中的参数文件进行修改)

*.control_files='c:\xff\data\xff.ctl'
*.db_name='orcl'
db_unique_name='xff'
log_archive_config='dg_config=(orcl,xff)'
*.log_archive_dest_1='location=C:\archive\xff\ valid_for=(all_logfiles,all_roles) db_unique_name=xff'
*.log_archive_dest_2='service=orcl lgwr async valid_for=(online_logfiles,primary_role) db_unique_name=orcl'
*.log_archive_dest_state_1=enable
*.log_archive_dest_state_2=enable
fal_server=orcl
fal_client=xff
db_file_name_convert='C:\oracle\product\10.2.0\oradata\orcl','c:\xff\data\'
log_file_name_convert='C:\oracle\product\10.2.0\oradata\orcl','c:\xff\data\'
standby_file_management=auto
--注意修改一些dump文件路径

4、启动数据库到mount状态
startup mount;
5、启动redo 应用
alter database recover managed standby database disconnect from session;(redo apply)
ALTER DATABASE RECOVER MANAGED STANDBY DATABASE USING CURRENT LOGFILE;(real-time apply)
三、检查配置结果
1、首先连接到primary 数据库
alter system switch logfile;
select name from v$archived_log;
2、连接到standby数据库
select name from v$archived_log;
如果和primary一致,再重复1、2操作,并且还是保持一致,说明配置成功
3、暂停redo应用
ALTER DATABASE RECOVER MANAGED STANDBY DATABASE CANCEL;
4、执行read only状态
执行3只是暂时redo 应用,并不是停止Standby 数据库,standby 仍会保持接收只不过不会再应用
接收到的归档,直到你再次启动redo 应用为。
在暂停redo应用的状态中可以把数据库至于read only状态用于查询
alter database open read only;(在11g中没有这个限制)
5、解决redo 不能被读取或者不能正常open
把standby数据库至于mount状态,执行
recover standby database until cancel;
选择cancel
再alter database open确保数据库中的所有文件scn号一致
然后添加临时文件
alter tablespace temp add tempfile ‘c:\xff\data\tm.dbf’ size 5m reuse;
确保数据库可以进行一般正常的操作
虚拟机中的pfile配置文件

oracle数据库复制

oracle数据库复制就是对当前的库进行拷贝(使用拷贝库用于测试、还原操作等)
1、本实验规划
使用的是同一个数据库服务器上做的拷贝试验
原数据库oracle_sid=orcl,准备新建数据库oracle_sid=xff,新建的数据库的文件放置符合ofm标准,也就是说,数据文件、控制文件、联机归档日志文件放置oradata/xff下面,一些日志记录文件放置在admin/xff下
2、用户管理方式复制数据库:
1)新建相关文件夹mkdir(省略)
2)准备xff的pfile文件
在orcl数据库中执行create pfile=’c:\orclpfile.txt’ from spfile;
修改orclpfile.txt文件,使用替换法,把所有的orcl替换成xff(替换的时候大致看下哦)
3)准备xff的控制文件
在orcl数据库中执行alter database backup controlfile to trace as ‘c:\b.txt’;
选择Set #2. RESETLOGS case部分,除掉其中的注释,把reuse修改为set处理后的大概结果如下:

CREATE CONTROLFILE set DATABASE "XFF" RESETLOGS  ARCHIVELOG
    MAXLOGFILES 16
    MAXLOGMEMBERS 3
    MAXDATAFILES 100
    MAXINSTANCES 8
    MAXLOGHISTORY 292
LOGFILE
  GROUP 1 'C:\ORACLE\PRODUCT\10.2.0\ORADATA\XFF\REDO01.LOG'  SIZE 50M,
  GROUP 2 'C:\ORACLE\PRODUCT\10.2.0\ORADATA\XFF\REDO02.LOG'  SIZE 50M,
  GROUP 3 'C:\ORACLE\PRODUCT\10.2.0\ORADATA\XFF\REDO03.LOG'  SIZE 50M
DATAFILE
  'C:\ORACLE\PRODUCT\10.2.0\ORADATA\XFF\SYSTEM01.DBF',
  'C:\ORACLE\PRODUCT\10.2.0\ORADATA\XFF\UNDOTBS01.DBF',
  'C:\ORACLE\PRODUCT\10.2.0\ORADATA\XFF\SYSAUX01.DBF',
  'C:\ORACLE\PRODUCT\10.2.0\ORADATA\XFF\USERS01.DBF',
  'C:\ORACLE\PRODUCT\10.2.0\ORADATA\XFF\XFF01.DBF'
CHARACTER SET AL32UTF8
;

4)alter database begin backup;
开始把orcl中的数据库文件,复制到xff的文件夹中
alter database end backup;
5)在dos下执行oradim -new -sid xff -intpwd oracle(建立oracle_sid=xff,并创建用户名为sys,密码为oracle的秘密文件)(删除oradim -DELETE -SID xff )
6)在dos下执行set oracle_sid=xff,因为没有配置tns的相信,手工设置oracle_sid
7)sqlplus sys/oracle as sysdba;连接到xff数据库
8)使用startup pfile=’c:\orclpfile.txt’ nomount 把xff数据库至于nomount状态
9)使用刚刚(3)中准备的创建控制文件的脚步,创建控制文件
10)使用在xff的sqlplus 环境下使用set logsource ‘path’指定归档日志位置(path为归档日志路径),
然后使用recover database using backup controlfile until cancel;
按照提示看看对应的文件是否存在,如果不存在查找下硬盘上是否有该文件,如果都不存在,尝试着使用联机日志文件恢复
11)使用alter database open resetlogs 打开数据库
12)建立临时文件
ALTER TABLESPACE TEMP ADD TEMPFILE ‘C:\ORACLE\PRODUCT\10.2.0\ORADATA\xff\TEMP01.DBF’
SIZE 20971520 REUSE AUTOEXTEND ON NEXT 655360 MAXSIZE 32767M
13)配置listener和tns,数据库复制工作完成
3、rman复制数据库
1)备份数据库rman
backup database include current controlfile plus archivelog format=’c:\%U.bak’;
2)创建spfile文件
create spfile=’%oracle_home%\database\spfilexff.ora’ from pfile=’c:\b.txt’;
3)登录xff把数据库设置到nomount模式
4)

run{
set newname for datafile 1 to 'C:\ORACLE\PRODUCT\10.2.0\ORADATA\XFF\SYSTEM01.DBF';
set newname for datafile 2 to 'C:\ORACLE\PRODUCT\10.2.0\ORADATA\XFF\undotbs01.DBF';
set newname for datafile 3 to 'C:\ORACLE\PRODUCT\10.2.0\ORADATA\XFF\sysaux01.DBF';
set newname for datafile 4 to 'C:\ORACLE\PRODUCT\10.2.0\ORADATA\XFF\users01.DBF';
set newname for datafile 5 to 'C:\ORACLE\PRODUCT\10.2.0\ORADATA\XFF\xff01.DBF';
set newname for tempfile 1 to 'C:\ORACLE\PRODUCT\10.2.0\ORADATA\XFF\\TE.DBF';
duplicate target database to xff logfile
'C:\ORACLE\PRODUCT\10.2.0\ORADATA\XFF\redo01.log' size 10m,
'C:\ORACLE\PRODUCT\10.2.0\ORADATA\XFF\redo02.log' size 10m,
'C:\ORACLE\PRODUCT\10.2.0\ORADATA\XFF\redo03.log' size 10m;
}
--note:1、需要加上temp表空间的转换,不然会报错
--2、在运行run之前,要确保在xff中的除本rman之外的所有用户均以退出

其他与用户复制oracle操作一致。和用户操作比起来,这个不用手工创建控制文件,只要创建spfile或者pfile(注意默认路径和名称)就可以了,其他的均有rman帮我们搞定

linux下配置php+mysql

准备工作:更新源设置为中国的源,下载速度会快点,非必须项

cd /etc/yum.repos.d/
mv CentOS-Base.repo CentOS-Base.repo.bak
wget http://centos.ustc.edu.cn/CentOS-Base.repo.5
 mv CentOS-Base.repo.5 CentOS-Base.repo
--更新系统
yum -y update

1、安装Apahce, PHP, Mysql, 以及php连接mysql库组件
yum -y install httpd php mysql mysql-server php-mysq
2、安装mysql扩展
yum -y install mysql-connector-odbc mysql-devel libdbi-dbd-mysql
3、安装php的扩展
yum -y install php-gd php-xml php-mbstring php-ldap php-pear php-xmlrpc
4、安装apache扩展
yum -y install httpd-manual mod_ssl mod_perl mod_auth_mysql
如果一次性安装请使用
yum -y install httpd php mysql mysql-server php-mysql httpd-manual mod_ssl mod_perl mod_auth_mysql php-mcrypt php-gd php-xml php-mbstring php-ldap php-pear php-xmlrpc mysql-connector-odbc mysql-devel libdbi-dbd-mysql
5、开启相关服务
/sbin/service mysqld start
/sbin/service httpd start
然后运行mysql,按照提示完成mysql初始化(后期的mysql配置也要考虑)
6、设置httpd和mysqld为开机启动状态
/sbin/chkconfig httpd on [设置apache为自启动]
/sbin/chkconfig –-add mysqld [mysql服务]–先使用chkconfig –list查看在列表中不,如果不在运行chkconfig –add 添加
/sbin/chkconfig mysqld on [mysqld服务]
7、安装ZendOptimizer3.3.9
到官网下载linux版的ZendOptimizer,然后使用tar -xzvf zendoptimizer的文件名
然后拷贝在其目录data下与php对应版本的ZendOptimizer.so到/usr/lib/httpd/modules/中
然后在/etc/php.ini的文件的末尾加上
[zend]
zend_optimizer.optimization_level=15
zend_extension=/usr/lib/httpd/modules/ZendOptimizer.so
然后执行service httpd restart,配置完成

达梦数据库初试

1、在安全登录处建立用户

2、在对应数据库的用户处建立用户,登录名选择刚刚新建的登录名

对象权限、系统权限管理上设置的图形化操作比较舒适,角色管理业比较人性化,很适合windows用户习惯
3、文件系统

从上图可以看到其中的xifenfei这个数据库的控制文件(.ctl)、数据文件(.dbf)、回滚文件(.rol)和剩下的重做日志文件和oracle的文件体系很像。
感言:初次接触达梦数据库,感觉是mssql和oracle的一个整合,在文件结构上和oracle有几分相似,在用户管理上和ms sql很相似,在进程/线程管理上对oracle进行了简化,在内存管理上没有oracle那样强大的可控性。在数据库整体上来说,和mssql更相似一点,都是采用一个数据库软件,多个数据库的管理模式,而不是oracle采用schema的模式(用户为基准)