关于Oracle如何创建相关的 *** 作

关于Oracle如何创建相关的 *** 作,第1张

5.1 创建数据文件大小20M的表空间

>CREATE TABLESPACE usertbs1 datafile

'D:\tmp\usertbs1.DBF' SIZE 20M

5.2 区定制分配

>CREATE TABLESPACE usertbs1 datafile

'D:\tmp\usertbs1.DBF' SIZE 20M

EXTENT MANAGEMENT LOCAL UNIFORM SIZE 512K

5.3 每次自动扩展1M,最大值为100MB

>ALTER DATABASE DATAFILE

'D:\tmp\usertbs1.DBF'

AUTOEXTEND ON NEXT 1M MAXSIZE 100M

5.4 创建临时表空间

>CREATE TEMPORARY TABLESPACE temptbs TEMPFILE

'D:\tmp\temptbs.DBF' SIZE 20M

EXTEND MANAGEMENT LOCAL UNIFORM SIZE 10M

/*设置当前默认表空间*/

>ALTER DATABASE DEFAULT TABLESPACE temptbs

5.5 对表空间联机脱机

>ALTER TABLESPACE usertbs1 OFFLINE

>ALTER TABLESPACE usertbs1 ONLINE

5.9 为表空间添加数据文件

>ALTER TABLESPACE usertbs1 ADD DATAFILE

'D:\tmp\USERS05.DBF' SIZE 50M

10题与9题一样

5.12 数据文件更名

>ALTER TABLESPACE usertbs1 OFFLINE

手动改数据文件名为 USERS005.DBF

>ALTER TABLESPACE usertbs1 RENAME DATAFILE

'D:\tmp\USERS05.DBF' TO

'D:\tmp\USERS005.DBF'

>ALTER TABLESPACE usertbs1 ONLINE

5.14 添加重做日志组,包含redo5a.log和redo5b.log,大小为5MB

>ALTER DATABASE ADD LOGFILE GROUP 4

('D:\tmp\redo5a.log', 'D:\tmp\redo5b.log')

SIZE 5M

5.15 添加日志文件成员

>ALTER DATABASE ADD LOGFILE MEMBER

'D:\tmp\redo5c.log' TO GROUP 4

5.16 切换归档模式且自动归档

>SHUTDOWN IMMEDIATE

>STARTUP MOUNT

>ALTER DATABASE ARCHIVELOG

>ALTER DATABASE OPEN

5.17 设置数据库归档路径

>ALTER SYSTEM SET db_recovery_file_dest="D:\ORACLE\BACKUP"

6.2 建表

>CREATE TABLE exer_class(

CNO NUMBER(2) PRIMARY KEY,

CNAME VARCHAR(20),

NUM NUMBER(3)

)

>CREATE TABLE exer_studnet(

SNO NUMBER(4) PRIMARY KEY,

SNAME VARCHAR(10) UNIQUE,

SAGE NUMBER,

SEX CHAR(2),

CNO NUMBER(2)

)

6.3 添加检查约束

>ALTER TABLE exer_studnet ADD

CONSTRAINT S_CK CHECK (SAGE BETWEEN 0 AND 100)

6.4 取值为M或F,默认M

>ALTER TABLE exer_studnet ADD

CONSTRAINT SEX_CK CHECK(SEX IN ('M','F'))

>ALTER TABLE exer_studnet MODIFY SEX DEFAULT 'M'

6.5 建立唯一索引

>CREATE UNIQUE INDEX class_name_index ON exer_class(CNAME)

6.6 创建视图

>CREATE VIEW cl_stu_view as

SELECT c.CNO, c.CNAME, s.SNO, s.SNAME FROM exer_class c, exer_studnet s

WHERE s.CNO=c.CNO

6.7 创建序列

>CREATE SEQUENCE no_seq START WITH 100000001 INCREMENT BY 1 NOCACHE NOCYCLE

6.8 表格分区

>CREATE TABLESPACE EXAMPLE DATAFILE

'D:\tmp\EXAMPLE.DBF' SIZE 50M

>CREATE TABLESPACE ORCLTBS1 DATAFILE

'D:\tmp\ORCLTBS1.DBF' SIZE 50M

>CREATE TABLESPACE ORCLTBS2 DATAFILE

'D:\tmp\ORCLTBS2.DBF' SIZE 50M

>CREATE TABLE exer_student_range(

SNO NUMBER(4) PRIMARY KEY,

SNAME VARCHAR(10) UNIQUE,

SAGE NUMBER,

SEX CHAR(2),

CNO NUMBER(2)

)

PARTITION BY RANGE(SAGE)(

PARTITION P1 VALUES LESS THAN (20) TABLESPACE EXAMPLE,

PARTITION P2 VALUES LESS THAN (30) TABLESPACE ORCLTBS1,

PARTITION P3 VALUES LESS THAN (MAXVALUE) TABLESPACE ORCLTBS2

)

6.9 按性别分区

>CREATE TABLE exer_student_list(

SNO NUMBER(4) PRIMARY KEY,

SNAME VARCHAR(10) UNIQUE,

SAGE NUMBER,

SEX CHAR(2),

CNO NUMBER(2)

)

PARTITION BY LIST(SEX)(

PARTITION male VALUES('M') TABLESPACE ORCLTBS1,

PARTITION female VALUES('F') TABLESPACE ORCLTBS2

)

6.10 本地分区索引

>CREATE INDEX student_local ON exer_student_range(SAGE) LOCAL

Oracle使用多个重做日志组来管理重做日志,这些重做日志组循环使用;

每个日志组至少包含一个日志成员,保险起见,建议每个日志组包含两个以上成员,每个日志成员位于不同的磁盘上,写入日志时Oracle会将相同的内容同时写入同一个日志组的多个成员;

日志文件与日志成员是一回事。

Oracle数据库能运行在 种模式下:归档模式(archivelog)和非归档模式(noarchivelog) 归档模式能提高Oracle数据库的可恢复性 生产数据库都应该运行在此模式下 归档模式应该和相应的备份策略相结合 只有归档模式没有相应的备份策略只会带来麻烦

检查归档模式命令

SQL>archive log list Database log mode No Archive Mode Automatic archival Disabled Archive destination USE_DB_RECOVERY_FILE_DEST Oldest online log sequence Current log sequence

设置归档模式

SQL>shutdown immediateDatabase closed Database di *** ounted ORACLE instance shut down SQL>startup mount ORACLE instance started Total System Global Area bytes Fixed Size bytes Variable Size bytes Database Buffers bytes Redo Buffers bytes Database mounted SQL>alter database archivelogDatabase altered SQL>alter database openDatabase altered SQL>archive log listDatabase log mode Archive Mode Automatic archival Enabled Archive destination USE_DB_RECOVERY_FILE_DEST Oldest online log sequence Next log sequence to archive Current log sequence

如果需要停止归档模式 使用 alter database noarchivelog 命令 Oracle g之前 你还需要修改初始化参数使数据库处于自动归档模式 在pfile/spfile中设置如下参数

log_archive_start = true

重启数据库此参数生效 此时数据库处于自动归档模式 也能在数据库启动过程中 手工执行

archive log start

使数据库启用自动归档 不过重启后数据库仍然处于手工归档模式 g使用db_recovery_file_dest来作为归档日志的存放地

SQL>show parameter db_recovery NAME TYPE VALUE db_recovery_file_dest string /home/oracle/ora g/flash_reco very_area/ db_recovery_file_dest_size big integer G

能修改db_recovery_file_dest_size参数的大小

alter system set db_recovery_file_dest_size=

重做日志文件把对数据文件的修改在写入数据文件之前记录下来 日志文件以一种循环的方式被写入信息 当一个日志组被写满时 回自动向另一个日志组写入 管理员可以手工切换当前日志组 alter system switch logfile 可以切换当前的日志组 当日志组发生切换时 oracle向新的重做日志组分配一个日志序列号 当存在大量的事务时必须调整重做日志文件的大小 以避免频繁的日志切换发生 重做日志文件被顺序的写在磁盘上 如果磁盘没有其他活动 I/O将会很快 应该把重做日志文件保存在单独的磁盘上 以获取良好的性能 尤其不要把经常处于活动状态的SYSTEM UNDOTBS SYSAUX的表空间或索引表空间文件保存到同一块磁盘上 因为只有在事务的请求被写到重做日志后 请求才能被完成 最大限度的提高重做日志的吞吐量是oracle性能优化首先考虑的因素 当发生重做日志切换而生成一个新的检查点时 DBWn就会写脏缓冲器块 这样会影响oracle的性能 可以通过fast_start_mttr_target初始化参数来调整检查点

每个数据库都有自己的联机重做日志组 一个联机重做日志组有多个重做日志成员 每个日志成员有单独的 *** 作系统文件 在一个rac配置(这种配置中单个数据库装有多个实例) 每个实例有一个联机重做日志线程 每个实例的lgwr进程都写到相同的联机重做日志文件 因此oracle必须跟踪数据库实例修改来自那个实例

当多路复用重做日志文件时 应该把一个组的成员保存在不同的磁盘上 以避免单点故障的发生 如果重做日志文件组的所有成员都无法写入数据 oracle将被挂起 Dba可以在创建数据库时创建多个联机重做日志文件的副本

对日志的 *** 作如下

a 创建新的重做日志组

Alter database add logfile

Group ( /ora /oradata/mydb /redo log

/ora /oradata/mdb /redo log ) size m

如果省略group子句 oracle分配一个有效的编号 如下

Alter database add logfile

b 添加新的组成员

alter database add logfile member

/ora /oradata/mydb /redo log to group (向第二组中添加新的成员)

c 重命名日志成员

在重命名日志组成员之前新的目标必须已经存在 Oracle的sql命令只是把控制文件中的内部指针指向新的日志文件 Dba需要用 *** 作系统命令来重命名此日志文件 步骤如下

.关闭数据库

.使用 *** 作系统命令重命名或移动日志文件

启动数据库实例(start mount) 重命名控制文件中的日志文        件成员 Alter database rename file         old_redo_file_name to new_redo_file_name

.打开数据库 alter database open

.备份控制文件

D.删除重做日志组

将要被删除的重做日志组不能是活动的日志组 Alter database drop logfile group 当重做日志文件被删除后 相关的 *** 作系统文件也被删除 相关的数据库控制文件也给更新

E.使用和删除重做日志组相同的方式 dba可以只删除一个非活动的重做日志组的成员

Alter database drop logfile member /ora /oradata/mydb /redo log

f 创建联机重做日志文件

当重做日志组成员遭到破坏时 可以删除并重新添加这个重做日志组或组成员

档案重做日志文件

它是联机重做日志文件的一个副本 Lgwr和arcn进程的故障都会引起数据库的挂起 只有当arcn进程把联机重做日志写到归档地后 才可以向此重做日志组成员写入数据

设置归档目的地

可以在参数初始化文件中的log_archive_dest_n来定义归档目的地 归档目的地可以在本地计算机上 也可在远程的数据库服务器上 定义语法如下

LOG_ARCHIVE_DEST_n= null_string |

(service=tnsnames_name |

LOCATION= directory_name )

[MANDATORY | OPTIONAL]

[REOPEN[=integer]]

LOG_ARCHIVE_DEST_ =((LOCATION= /archive/MYDB ) MANDATORU REOPEN= )定义归档日志的位置为/archive/MYDB mandatory子句的定义向这个位置写日志的 *** 作必须的成功的 Reopen子句定义在日志写入失败时 下次尝试写入 *** 作的时间间隔 缺省是 秒

LOG_ARCHIVE_DEST_@=(SERVICE=STDBY ) OPTIONAL REOPEN语句中的stdby 的连接到远程数据库的oracle net连接串 由于写 *** 作是可选的 所以数据库活动继续 当arcn进程不能写档案日志文件时 进程将立即尝试重新写入(这个动作有reopen子句来定义)

Log_archive_min_succeed_dest:定义最少归档日志的副本数量

Log_archive_format:定义归档日志文件采用的名称和使用的格式 可以使用预定义变量来构造每个归档日志文件的名称 变量如下

%s      日志序列号

%t      线程号

%r      复位日志id

%d      数据库id

lishixinzhi/Article/program/Oracle/201311/17689


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

原文地址: http://www.outofmemory.cn/bake/11893310.html

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

发表评论

登录后才能评论

评论列表(0条)

保存