Oracle ASM -- 6: ASM on Windows
1. 先用DiskPart创建分区基本的步骤是先创建一个extended partition,占据整个磁盘;然后在该extended partition内部创建一个logical partition,占据整个extended partition.(1) list diskDISKPART> list disk Disk ### Status Size Free Dyn Gpt -------- ---------- ------- ------- --- --- Disk 0 Online 20 GB 0 B Disk 1 Online 1020 MB 1020 MB Disk 2 Online 1020 MB 1020 MB Disk 3 Online 1020 MB 1020 MB(2) select disk 1(3) create partition extende
Oracle ASM -- 5: Administering ASM Files, Directories, and Templates.txt
1. ASM FileNames (1) fully qualified filename +group/dbname/file_type/file_type_tag.file.incarnation file_type和file_type_tag可查表 (2) Numeric ASM Filename +group.file.incarnation (3) Alias ASM Filenames +dgroup1/myfiles/control_file1 Alias不可以以数字结尾,以区别于fully qualified filename (4) Alias ASM Filename with Template +
Oracle ASM -- 4: 管理ASM DiskGroup
1. Adding disks 添加的时候可以使用v$asm_disk的path:alter diskgroup dg_data add disk 'ORCL:DISK10' REBALANCE POWER 5 WAIT;2. Dropping Disks 删除磁盘时会有一个rebalance操作,把所有数据从待删除磁盘移动到其它磁盘上去.首先从v$asm_disk里获取lable,然后删除ALTER DISKGROUP dgroup1 DROP DISK disk5;3. Resizing Disksalter diskgroup dg_data resize all size 400m;alter diskgroup dg_data resize disk 'DISK5' size 395m;4. Manaing Capacity in Disk GroupsV$ASM_DISKGROUP REQUIRED_MIRROR_FREE_MB: Normal Redundancy: th
Oracle ASM -- 3: 管理ASM实例
1.instance初始化参数 (1)INSTANCE_TYPE 是唯一必需的参数 (2)内存管理缺省采用自动管理, 需要的内存总量由MEMORY_TARGET控制. (3)ASM_DISKGROUPS: 需要mount哪些diskgroups (4)ASM_DISKSTRING: ASM disk discovery string (5)ASM_POWER_LIMIT: rebalance操作的力度2.Disk Group参数 (1) AU_SIZE (2) COMPATIBLE.ASM (3) COMPATIBLE.RDBMS (4) DISK_REPAIR_TIME: 一个asm disk 被offline的时间超过DISK_REPAIR_TIME之后将被drop掉 3. CSS ASM需要css提供cluster sercice,以便ASM 实例和数据库实例之间进行通
Oracle ASM -- 2: 准备存储设备
1. 可供ASM使用的存储设备类型: a. Raw Disk Partition: b. LUN: c. Raw Logical Volumes: 可以但不推荐 d. NFS Files: oracle内置对NFS的支持,允许将NFS file作为ASM disk使用 2. 配置ASM设备的步骤 a. 识别设备名称 b. 设置ownership和permission. 在linux上这个任务由ASMLib完成. 3. ASM和MultiPathing ASM支持multiPathing, 需要使用multuipath disk的路径配置ASM Disk. 4. 配置ASM存储的建议 a. 使用至少两个disk groups,一个存放数据,另一个用于flash reocvery area b. 同一个disk groups
Oracle ASM -- 1: 简介
1. ASM相当于Volume Manger2. 可以在多个数据库之间共享一个disk group, 可以不是RAC,但必须安装Oracle Clusterware, 如果是多个server,那么必须使用共享的存储设备3. ASM可管理的对象:a. 一个磁盘的一个分区b. 一个磁盘阵列的一个盘或一个分区c. LVd. NFS4. AUAU是disk goup内分配存储的最小单位, ASM File包含一个或多个file extent, 每个extent由一个或多个AU.AU的大小在disk group创建时指定(AU_SIZE),可以是1m,2m,4m,...64mCREATE DISKGROUP dgroup_01EXTERNAL REDUNDANCYDISK '$ORACLE_HOME/disks/c*'attribute (AU_SIZE=1m);5. Ext
IMP/IMPDP的一个问题
先创建一个表:CREATE TABLE T( ID NUMBER(19) NOT NULL, aid NUMBER(19), astid NUMBER(19), STARTDATE TIMESTAMP(9), ENDDATE TIMESTAMP(9), MONTHRANGE VARCHAR2(20 BYTE));然后添加一个唯一性约束:ALTER TABLE T add CONSTRAINT UNQ_agrAssetDate_Month unique(aid, astid, startDate, endDate, monthRange);显然,由于创建唯一性约束会创建一个unique index : UNQ_agrAssetDate_Month, 如果我们在此时删除约
Oracle Database Vault -- 5.定义Factors
1. 概念 Factor可以看作变量. 2. 定义一个Factor (1)Name: (2 Description: (3)Factor Type: 仅供便于区分不同的因子 (4)Factor Identification: 如何确定一个factor的identity a. By Method: 根据Retrieval Method的表达式确定identity b. By Constant: 根据Retrieval Method的常量确定identity c. By Factors: 根据child factor确定identity 可以用如下两种方法引用factor的identity: select dvf.f$factor_name from dual; select get_
Oracle Database Vault -- 4.使用Command Rules
1. 简介 Command包括create/alter/drop/rename,insert/update/delete/trucate/select, audit/noaudit,comment,connect,execute,grant/revoke等常用的SQL命令 Rules可以是任何预定义的Rule Set Command Rules可以视作"常见SQL语句管制条例". 2. Command Rules的定义 一个command rule应该包含如下内容: (1) 什么命令 (2) 用户:哪些用户在管制范围之内,支持通配符 (3) 数据库对象:哪些数据库对象在管制范围之内,支持通配符 (4) 规则集: 什么情况下这个命令可以执行 (5) 状态: 启用还
Oracle Database Vault -- 3.定义Rule Sets
1.简介Rule Sets包含一套规则,并且定义了如何判定结果(any true/all true)。2.用途 简单来说,Rule Sets可以用作一个二元开关,开还是关由内部的rules及表决机制决定。Rule Sets可以在定义Realm Authorization, Command Rules,Factor时使用。3. 缺省的Rule Sets(1) Allow Sessions(2) Allow System Parameters(3) Can Grant VPD Administration(4) Can Maintain Acounts/Profiles(5) Disabled (6) Enabled4. Rule Sets的定义(1) 名称及说明(2) 一组规则(3) 表决机制: all true/any true(2) 状态:启用还是停用(4) 如何audit(5) 错误处理机
Oracle Database Vault -- 2.使用Realm保护数据
1. Realm是什么 Realm用来定一个逻辑的数据库对象的集合,对于这些对象的访问要遵循该Realm的授权规则.2 . Realm的原理 Vaul的设计目的就是针对具有系统权限的DBA的,同样的,Realm只是用来保护System Priviledges和Roles, Realm不限制通过object privileges获得的访问权限. 当用户访问一个受Realm保护的数据库对象时,需要经过如下步骤: (1) 当前用户是否正在使用一个"system priviledge"? 如果不是,那么转(6),否则转(2) (2) 当前的SQL语句是否访问一个受Realm保护的数据库对象? 如果不是
Oracle Database Vault -- 1.安装
1. 安装数据库时要选中 "Oracle Label Security" 和 "Database vault option"2. 创建数据库时要选中 "Oracle Label Security" 和 "Oracle database Vault" .3. 安装完毕后,可以使用下面的URL访问 database vault administrator https://[host_name]:[port]/dva 另外还提供一个 命令行工具: DVCA: oracle database vault configuration assistant 4. Vault相关的两个schema: DVSYS: DVF: vault相关的函数 5. Vault相关的数据库角色: DV_ACCTMGR: create
Flashback Database的典型步骤
基本原理:闪回日志记录了发生变更的数据块的变更前镜像.闪回时用闪回日志中的数据块替换现有数据文件中的数据块.限制: 1. 数据文件不能损坏或者丢失 2. 不能跨越一个restore controlfile或者 re-create controlfile操作 步骤:1.确定闪回点 SELECT OLDEST_FLASHBACK_SCN, OLDEST_FLASHBACK_TIME FROM V$FLASHBACK_DATABASE_LOG; SELECT CURRENT_SCN FROM V$DATABASE SELECT NAME, SCN, TIME, DATABASE_INCARNATION#, GUARANTEE_FLASHBACK_DATABASE FROM V$RESTORE_POINT WHERE GUARANTEE
使用RMAN的Transport命令执行transport tablespaces(on the same platform)
RMAN的这个transport命令只是将原有的步骤自动化了一下,实质上没有什么新鲜的内容.1. Make a backup of the source databasebackup database plus archivelog;实际上只需要:SYSTEM tablespaceSYSAUX tablespaceTemp tablespace Tablespaces containing rollback or undo segmentsTraget tablesapces All needed archivelogsControlfile 2. Self-Contain checkexecute sys.dbms_tts.transport_set_check('TEST1',TRUE);select * from sys.transport_set_violations;3. Create Directories for transport and auxiliary destinationmkdir -p
使用RMAN的duplicate命令创建Physical Standby Database
1. 确保P运行在Archivelog 模式下 2. 设置P端的初始化参数DB_NAME= shacol11 DB_UNIQUE_NAME= shacol11 db_recovery_file_dest_size=200gdb_recovery_file_dest='/oracle/flash_recovery_areaCONTROL_FILES='/oracle/oradata/shacol11/control1.ctl', '/oracle/oradata/shacol11/control2.ctl', '/oracle/oradata/shacol11/control3.ctl'REMOTE_LOGIN_PASSWORDFILE=EXCLUSIVELOG_ARCHIVE_FORMAT=%t_%s_%r.arc ( unmodificable)LOG_ARCHIVE_MAX_PROCESSES=30 LOG_ARCHIVE_CONFIG='DG_CONFIG=( shacol11, shbcol11)'LOG_ARCHIVE_DEST_1= 'L
使用RMAN进行Active Database Duplication
1. 配置listener文件,需要指定静态的SIDSID_LIST_LISTENER =(SID_LIST =(SID_DESC =(SID_NAME = PLSExtProc)(ORACLE_HOME = /oracle/product/10.2/db_2)(PROGRAM = extproc))(SID_DESC =(GLOBAL_DBNAME = orcl11)(ORACLE_HOME = /oracle/product/11.1.0/db_1)(SID_NAME = orcl11))(SID_DESC =(GLOBAL_DBNAME = test1)(ORACLE_HOME = /oracle/product/11.1.0/db_1)(SID_NAME = test1)))LISTENER =(DESCRIPTION_LIST =(DESCRIPTION =(ADDRESS = (PROTOCOL = TCP)(HOST = nodeA)(PORT = 1521))(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC0)))
使用RMAN在本机创建Clone数据库
1.创建一个备份backup database plus archivelog;2. 配置listener文件,需要指定静态的SIDSID_LIST_LISTENER =(SID_LIST =(SID_DESC =(SID_NAME = PLSExtProc)(ORACLE_HOME = /oracle/product/10.2/db_2)(PROGRAM = extproc))(SID_DESC =(GLOBAL_DBNAME = orcl11)(ORACLE_HOME = /oracle/product/11.1.0/db_1)(SID_NAME = orcl11))(SID_DESC =(GLOBAL_DBNAME = test1)(ORACLE_HOME = /oracle/product/11.1.0/db_1)(SID_NAME = test1)))LISTENER =(DESCRIPTION_LIST =(DESCRIPTION =(ADDRESS = (PROTOCOL = TCP)(HOST = nodeA)(PORT = 1521)
Oraclel联机日志文件损坏的对策
分情况讨论如下1. 丢失了某个日志组的多个文件中的一个 (1) 识别损坏的日志文件 (2) 确认该日志文件不是当前正在使用的日志文件组;如果是当前,那么 alter system switch logfile; (3) alter database drop logfile member '/directory/member'; (4) alter database add logfile member '/new directory/member' to group group#; 2. 丢失一个Inactive日志组的所有成员 (1) 识别损坏的日志文件 (2) 确保该日志文件组是inactive状态的, 也就是说不包含已经提交但还未写入数据文件的事务 (3) alter database clea
使用RMAN恢复丢失的SPFILE
情形:a. SPFILE丢失b. RMAN不使用catalog databasec. RMAN配置了controlfile autobackup,并且有可用的autobackup.数据库版本:Oracle 11.1.0.61. 如果数据库处于打开状态由于本次数据库启动是带SPFIEL正常启动,RMAN不允许将SPFILE恢复到缺省的位置,需要先SPFILE恢复到一个临时目录,例如:restore spfile to 'e:SPFILEG11.ORA' from autobackup;然后拷贝到缺省位置即可. 2. 如果数据库处于关闭状态先启动到nomount状态:startup force nomount本次启动是不带spfile的强制启动,当然control file也是不可访问的,需要手工指定DBID:set dbid 1312
在RMAN里使用Transparent Encryption进行backup/recovery
测试环境 OS: windows xp professional DB: Oracle 11.1.0.6 测试步骤:1. 先打开wallet: ALTER SYSTEM SET WALLET OPEN IDENTIFIED BY "admin110"; 如果wallet不存在,可以使用下面的命令创建,注意保护好这个master key: ALTER SYSTEM SET ENCRYPTION KEY IDENTIFIED BY "admin110"; 2.在RMAN里进行配置RMAN> configure encryption for database on;old RMAN configuration parameters:CONFIGURE ENCRYPTION FOR DATABASE OFF;new RMAN configuration parameters:CONFIGURE ENCRYPTION FOR DATABAS