下面是小编为大家整理的简便实现Oracle数据库文件移动方法数据库教程,本文共7篇,仅供参考,喜欢可以收藏与分享哟!本文原稿由网友“Jingle”提供。
篇1:简便实现Oracle数据库文件移动方法数据库教程
oracle|数据|数据库
Oracle数据库在使用过程中,随着数据的增加数据库文件也逐渐增加,在达到一定大小后有可能会造成硬盘空间不足;那么这时我们可以把数据库文件移动到另一个大的硬盘分区中,简便实现Oracle数据库文件移动方法数据库教程
。下面我就以Oracle for Windows版本中把C盘的数据库文件移动到D盘为例介绍Oracle数据库文件移动的方法和步骤。1.在sqlplus中连接到要移动文件的Oracle数据库,然后执行如下SQL语句查看Oracle数据库文件位置:
SQL>select file_name from sys.dba_data_files;FILE_NAME--------------------------------------------------------------C:\\ORA8\\ORADATA\\ORACLE\\USERS01.DBFC:\\ORA8\\ORADATA\\ORACLE\\DR01.DBFC:\\ORA8\\ORADATA\\ORACLE\\TOOLS01.DBFC:\\ORA8\\ORADATA\\ORACLE\\INDX01.DBFC:\\ORA8\\ORADATA\\ORACLE\\RBS01.DBFC:\\ORA8\\ORADATA\\ORACLE\\TEMP01.DBFC:\\ORA8\\ORADATA\\ORACLE\\SYSTEM01.DBF
查询到7记录.
记录要移动的文件的位置和名称。
2.下面我们以把文件“C:\\ORA8\\ORADATA\\ORACLE\\USERS01.DBF”移动到“D:\\ORADATA\\USERS01.DBF”为例介绍,要移动其它文件,请安相同的方法(根据实际情况修改文件路径和名称)操作即可,
<1>首先让所有的用户停止连接该数据库,关闭数据库。在命令行窗口中输入:
C:\\svrmgrl(回车)SVRMGR>connect internal(回车)SVRMGR>shutdown immediate(回车)#等待数据库提示关闭SVRMGR>exit
<2>从“C:\\ORA8\\ORADATA\\ORACLE\”目录下找到文件“USERS01.DBF”,然后复制到目录“D:\\ORADATA\”下面。如果移动多个文件,重复该步骤。
<3>进入命令窗口,按以下内容输入:
SVRMGR>connect internal(回车)
SVRMGR>startup mount(回车)
#等待数据库提示装载成功
SVRMGR>alter database rename file 'C:\\ORA8\\ORADATA\\ORACLE\\USERS01.DBF' to 'D:\\ORADATA\\USERS01.DBF';
#提示语句已处理后,如果要移动多个文件,修改文件路径和名称后重复执行上面的语句。完成后打开数据库。
SVRMGR>alter database open;
SVRMGR>exit
数据库文件移动成功。
篇2:在移动数据库文件之前使用spdetachdb / spattachdb数据库教程
经常更新和优化的数据库可以以更快的速度运行,然而,将数据库直接从一个比较小的磁盘转移到另一个比较大的磁盘,这样的想法是不可能实现的。在转移数据库之前,你必须将数据库断开所有的操作。使用sp_detach_db存储程序可以将数据库从SQL Server 分离开来,从而达到数据库的离线操作。同样可以运行另一个存储程序sp_attach_db将数据库重新连接。
Sp_detach_db是一个功能强大的存储程序,它只能由系统管理人员运行。除了具备“分离”功能之外,这一程序在分离数据库之前也自动运行所有表的UPDATE STATISTICS,
以下的范例分离了MyDatabase数据库:
EXEC sp_detach_db 'MyDatabase'
现在可以转移我们的数据库到一个新的磁盘并重新连接它们。连接数据库操作可能比较复杂,除了提供数据库名称,你可以选择SQL Server数据库文件的位置。
在以下的范例中,我们可以从一个新位置D:\\AnyFolder\\:重新连接数据库。
execsp_attach_db 'MyDatabase',
@filename1='D:\\AnyFolder\\MyDatabase_Data.MDF',
@filename2='D:\\AnyFolder\\MyDatabase_Log.LDF'
篇3:实现Oracle数据库复制数据库
我们经常希望把各地的数据入库后进行统一的应用,现在可以用复制技术来解决这个问题。但实现数据库复制也是要有一些条件的。 首先,数据库要具备高级复制功能(用system身份登录数据库,查看v$option视图,如果其中Advanced replication为TRUE,则支持高级复
我们经常希望把各地的数据入库后进行统一的应用。现在可以用复制技术来解决这个问题。但实现数据库复制也是要有一些条件的。
首先,数据库要具备高级复制功能(用system身份登录数据库,查看v$option视图,如果其中Advanced replication为TRUE,则支持高级复制功能;否则不支持)。
如果具备高级复制功能,数据库要进行一些参数初始化。
db_domain = test.com.cn 指明数据库的域名(默认的是WORLD),这里可以用您公司的域名;global_names = true 它要求数据库链接(database link)和被连接的数据库名称一致,现在全局数据库名:db_name+”.”+db_domain ;
跟数据库job执行有关的参数:
job_queue_processes = 1;
job_queue_interval = 60;
distributed_transactions = 10;
open_links = 4
第一行定义SNP进程的启动个数为n。系统缺省值为0,正常定义范围为0~36,根据任务的多少,可以配置不同的数值。第二行定义系统每隔N秒唤醒该进程一次。系统缺省值为60秒,正常范围为1~3600秒。事实上,该进程执行完当前任务后,就进入睡眠状态,睡眠一段时间后,由系统的总控负责将其唤醒。如果修改了以上这几个参数,需要重新启动数据库以使参数生效。
做完了初步的准备,我们来实现数据库同步复制。
假设在Inte.net上有两个数据库:一个叫中国(China),一个叫日本(Japan)。
具体配置如下:
数据库名:China、Japan
数据库域名 test.com.cn
数据库sid号 China、Japan
Listener端口号 1521
服务器ip地址 10.1.0.100 10.1.0.200
确认两个数据库之间可以互相访问,在tnsnames.ora里设置数据库连接字符串。
中国这边的数据库连接字符串是以下的格式:
Japan =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 10.1.1.200)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = Japan)
)
)
运行$tnsping Japan,出现以下提示符:
Attempting to contact (ADDRESS=(PROTOCOL=TCP)(HOST=10.1.1.200)(PORT=1521))
OK(n毫秒)
表明中国数据库可以访问日本数据库。在日本那边也同样配置,确认$tnsping China 是通的。
改数据库全局名称,建公共的数据库链接。
用system身份登录China数据库
SQL>alter database rename global_name to China.test.com.cn;
用system身份登录Japan数据库:
SQL>alter database rename global_name to Japan.test.com.cn;
用system身份登录China数据库。
SQL>create public database link Japan.test.com.cn using 'Japan';
测试数据库全局名称和公共的数据库链接。
SQL>select * from global_name@Japan.test.com.cn;
返回结果为Japan.test.com.cn就对了。
用system身份登录Japan数据库:
SQL>create public database link China.test.com.cn using 'China';
测试数据库全局名称和公共的数据库链接。
SQL>select * from global_name@China.test.com.cn;
返回结果为China.test.com.cn就对了。
建立管理数据库复制的用户repadmin,并赋权,
用system身份登录China数据库:
SQL>create user repadmin identified by repadmin default tablespace users temporary tablespace temp;
SQL>execute dbms_defer_sys.register_propagator('repadmin');
SQL>grantexecute any procedure to repadmin;
SQL>execute dbms_repcat_admin.grant_admin_any_repgroup('repadmin');
SQL>grant comment any table to repadmin;
SQL>grant lock any table to repadmin;
同样用system身份登录Japan数据库,运行以上的命令,管理数据库复制的用户repadmin,并赋权。
在数据库复制的用户repadmin下创建私有的数据库链接。
用repadmin身份登录China数据库。
SQL>create database link Japan.test.com.cn connect to repadmin identified
在Japan数据库那边同样运行以上①,②,③。
在Japan数据库scott用户下创建主关键字的序列号,范围避免和China的冲突。
SQL>create sequence dept_no increment by 1 start with 45 maxvalue 99 cycle nocache;
在Japan数据库scott用户下插入初始化数据。
SQL>insert into dept values (dept_no.nextval,'sales','chicago');
SQL>insert into dept values (dept_no.nextval,'operations','boston');
SQL>commit;
创建要复制的组scott_mg,加入数据库对象,产生对象的复制支持。
用repadmin身份登录China数据库,创建主复制组scott_mg:
SQL>execute dbms_repcat.create_master_repgroup('scott_mg');
在复制组scott_mg里加入数据库对象:
SQL>execute dbms_repcat.create_master_repobject(sname=>'scott',oname=>'dept', type=>'table',use_existing_object=>true,gname=>'scott_mg');
参数说明:
sname 实现数据库复制的用户名称;
oname 实现数据库复制的数据库对象名称;
type 实现数据库复制的数据库对象类别;
use_existing_object true表示用主复制节点已经存在的数据库对象;
gname 主复制组名;
对数据库对象产生复制支持:
SQL>execute dbms_repcat.generate_replication_support('scott','dept','table');
确认复制的组和对象已经加入数据库的数据字典:
SQL>select gname, master, status from dba_repgroup;
SQL>select * from dba_repobject;
创建主复制节点:
用repadmin身份登录China数据库,创建主复制节点:
SQL>execute dbms_repcat.add_master_database
(gname=>'scott_mg',master=>'Japan.test.com.cn', use_existing_objects=>true, copy_rows=>false, propagation_mode =>'asynchronous');
参数说明:
gname 主复制组名;
master 加入主复制节点的另一个数据库;
use_existing_object true表示用主复制节点已经存在的数据库对象;
copy_rows false表示第一次开始复制时不用和主复制节点保持一致;
propagation_mode 异步地执行;
确认复制的任务队列已经加入数据库的数据字典:
SQL>select * from user_jobs;
使同步组的状态由停顿(quiesced )改为正常(normal):
用repa
原文转自:www.ltesting.net
篇4:Oracle 9i 约束条件数据库教程
约束条件就是Oracle数据库系统提供的对数据的完整性进行制约的机制,
Oracle 9i 约束条件数据库教程
。Oracle 9i允许创建5种约束条件。参见表7.8。创建检查约束条件
(1)在【管理目标导航器】中按照7.6节修改数据表结构的步骤进行操作。
(2)切换到图7.61所示的编辑表的【约束条件】选项卡。
(3)上述创建检查约束条件的SQL码如下?br> DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD
ALTER TABLE “SCOTT”.“STUDENT”
ADD (CONSTRAINT “研究生编号检查约束条件”
CHECK(student_id>= and student_id<=0909))
DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD
【参见光盘文件】:\\第7章\\ createcheck.sql。
(4)读者也可以直接在【SQLPlus Worksheet】中执行createcheck.sql 文件完成检查约束条件的创建,如图7.62所示,
测试检查约束条件
(1)在7.63所示的【表数据编辑器】界面中按照图示内容输入,单击“应用(P)”按钮。
(2)上述输入数据的SQL代码如下。
DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD
INSERT INTO “SCOTT”.“STUDENT”
(“STUDENT_ID” ,“NAME” ,“PROFESSIONAL” ,“BIRTHDAY” ,“DIRECTOR_ID” )
VALUES (20010101 ,'纪晓芙' ,'软件工程' ,TO_DATE('15-7月 -1971', 'dd-Mon-yyyy HH:MI:SS AM') ,01)
DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD
【参见光盘文件】:\\第7章\\ testcheck.sql。
(3)出现如图7.64所示界面。
(4)读者也可以直接在【SQLPlus Worksheet】中执行testcheck.sql 文件完成检查约束条件的测试,结果如图7.65所示。
篇5:删除Oracle 9i数据库数据库教程
(1)启动【数据库配置助手】,一直到出现如图6.44所示的【操作】界面,
删除Oracle 9i数据库数据库教程
。(2)出现如图6.45所示的【数据库】界面,
(3)出现如图6.46所示的【概要】界面。
(4)出现如图6.47所示的【删除确认】界面。
(5)成功删除数据库后出现如图6.48所示的【成功境】界面。单击“否”按钮?br>
篇6:最简便的备份MySql数据库方法数据库教程
mysql|备份|数据|数据库
使用MYSQL进行数据库备份,又很正规的数据库备份方法,同其他的数据库服务器有相同的概念,但有没有想过,MySQL会有更简捷的使用文件目录的备份方法,而且又快有好,最简便的备份MySql数据库方法数据库教程
。一、数据备份捷径
因为这个方法没有得到官方正式文档的验证,我们暂称为试验吧。
目的:备份hostA主机中一个mysql数据库TestA,并恢复到到hostB机中
试验环境:
操作系统:WinNT4.0,Mysql3.22.34,phpMyAdmin 2.1.0
在hostA中安装mysql数据库并建立TestA数据库
hostB机安装mysql数据库,没有TestA数据库
方法步骤:
启动phpMyAdmin察看HostA和HostB中的数据库列表,在HostB中没有TestA数据库
找到HostA中mysql的安装目录,并找到数据库目录data
在我的试验环境中,这个目录是
C:mysqldata
找到对应数据库名称的子目录
C:mysqldataTestA
粘贴拷贝到HostB的Data目录下,是HostA同HostB Mysql数据目录下的文件相同
刷新HostB的phpMyAdmin察看一下数据库列表,我们看到TestA已经出现,并且作查询修改等操作都正常,备份恢复恢复成功
试验结论:Mysql的数据库可以通过文件形式保存,备份,恢复只要将相应文件目录恢复即可,无需使用其它工具备份。
二、正规的方法(官方建议):
导出要用到MySQL的mysqldump工具,基本用法是:
mysqldump [OPTIONS] database [tables]
如果你不给定任何表,整个数据库将被导出。
通过执行mysqldump --help,你能得到你mysqldump的版本支持的选项表。
注意,如果你运行mysqldump没有--quick或--opt选项,mysqldump将在导出结果前装载整个结果集到内存中,如果你正在导出一个大的数据库,这将可能是一个问题。
mysqldump支持下列选项:
--add-locks
在每个表导出之前增加LOCK TABLES并且之后UNLOCK TABLE。(为了使得更快地插入到MySQL)。
--add-drop-table
在每个create语句之前增加一个drop table。
--allow-keywords
允许创建是关键词的列名字。这由在列名前面加表名的方法做到。
-c, --complete-insert
使用完整的insert语句(用列名字)。
-C, --compress
如果客户和服务器均支持压缩,压缩两者间所有的信息。
--delayed
用INSERT DELAYED命令插入行。
-e, --extended-insert
使用全新多行INSERT语法。(给出更紧缩并且更快的插入语句)
-#, --debug[=option_string]
跟踪程序的使用(为了调试)。
--help
显示一条帮助消息并且退出。
--fields-terminated-by=...
--fields-enclosed-by=...
--fields-optionally-enclosed-by=...
--fields-escaped-by=...
--fields-terminated-by=...
这些选择与-T选择一起使用,并且有相应的LOAD DATA INFILE子句相同的含义,
LOAD DATA INFILE语法。
-F, --flush-logs
在开始导出前,洗掉在MySQL服务器中的日志文件。
-f, --force,
即使我们在一个表导出期间得到一个SQL错误,继续。
-h, --host=..
从命名的主机上的MySQL服务器导出数据。缺省主机是localhost。
-l, --lock-tables.
为开始导出锁定所有表。
-t, --no-create-info
不写入表创建信息(CREATE TABLE语句)
-d, --no-data
不写入表的任何行信息。如果你只想得到一个表的结构的导出,这是很有用的!
--opt
同--quick --add-drop-table --add-locks --extended-insert --lock-tables。
应该给你为读入一个MySQL服务器的尽可能最快的导出。
-pyour_pass, --password[=your_pass]
与服务器连接时使用的口令。如果你不指定“=your_pass”部分,mysqldump需要来自终端的口令。
-P port_num, --port=port_num
与一台主机连接时使用的TCP/IP端口号。(这用于连接到localhost以外的主机,因为它使用 Unix套接字。)
-q, --quick
不缓冲查询,直接导出至stdout;使用mysql_use_result做它。
-S /path/to/socket, --socket=/path/to/socket
与localhost连接时(它是缺省主机)使用的套接字文件。
-T, --tab=path-to-some-directory
对于每个给定的表,创建一个table_name.sql文件,它包含SQL CREATE 命令,和一个table_name.txt文件,它包含数据。 注意:这只有在mysqldump运行在mysqld守护进程运行的同一台机器上的时候才工作。.txt文件的格式根据--fields-xxx和--lines--xxx选项来定。
-u user_name, --user=user_name
与服务器连接时,MySQL使用的用户名。缺省值是你的Unix登录名。
-O var=option, --set-variable var=option
设置一个变量的值。可能的变量被列在下面。
-v, --verbose
冗长模式。打印出程序所做的更多的信息。
-V, --version
打印版本信息并且退出。
-w, --where='where-condition'
只导出被选择了的记录;注意引号是强制的!
“--where=user='jimf'” “-wuserid>1” “-wuserid<1”
最常见的mysqldump使用可能制作整个数据库的一个备份:
mysqldump --opt database >backup-file.sql
但是它对用来自于一个数据库的信息充实另外一个MySQL数据库也是有用的:
mysqldump --opt database | mysql --host=remote-host -C database
由于mysqldump导出的是完整的SQL语句,所以用mysql客户程序很容易就能把数据导入了:
mysqladmin create target_db_name
mysql target_db_name < backup-file.sql
篇7:oracle里的常用命令数据库教程
oracle
第一章:日志管理1.forcing log switches
sql>alter system switch logfile;
2.forcing checkpoints
sql>alter system checkpoint;
3.adding online redo log groups
sql>alter database add logfile [group 4]
sql>('/disk3/log4a.rdo','/disk4/log4b.rdo') size 1m;
4.adding online redo log members
sql>alter database add logfile member
sql>'/disk3/log1b.rdo' to group 1,
sql>'/disk4/log2b.rdo' to group 2;
5.changes the name of the online redo logfile
sql>alter database rename file 'c:/oracle/oradata/oradb/redo01.log'
sql>to 'c:/oracle/oradata/redo01.log';
6.drop online redo log groups
sql>alter database drop logfile group 3;
7.drop online redo log members
sql>alter database drop logfile member 'c:/oracle/oradata/redo01.log';
8.clearing online redo log files
sql>alter database clear [unarchived] logfile 'c:/oracle/log2a.rdo';
9.using logminer analyzing redo logfiles
a. in the init.ora specify utl_file_dir = ' '
b. sql>execute dbms_logmnr_d.build('oradb.ora','c:\\oracle\\oradb\\log');
c. sql>execute dbms_logmnr_add_logfile('c:\\oracle\\oradata\\oradb\\redo01.log',
sql>dbms_logmnr.new);
d. sql>execute dbms_logmnr.add_logfile('c:\\oracle\\oradata\\oradb\\redo02.log',
sql>dbms_logmnr.addfile);
e. sql>execute dbms_logmnr.start_logmnr(dictfilename=>'c:\\oracle\\oradb\\log\\oradb.ora');
f. sql>select * from v$logmnr_contents(v$logmnr_dictionary,v$logmnr_parameters
sql>v$logmnr_logs);
g. sql>execute dbms_logmnr.end_logmnr;
第二章:表空间管理
1.create tablespaces
sql>create tablespace tablespace_name datafile 'c:\\oracle\\oradata\\file1.dbf' size 100m,
sql>'c:\\oracle\\oradata\\file2.dbf' size 100m minimum extent 550k [logging/nologging]
sql>default storage (initial 500k next 500k maxextents 500 pctinccease 0)
sql>[online/offline] [permanent/temporary] [extent_management_clause]
2.locally managed tablespace
sql>create tablespace user_data datafile 'c:\\oracle\\oradata\\user_data01.dbf'
sql>size 500m extent management local uniform. size 10m;
3.temporary tablespace
sql>create temporary tablespace temp tempfile 'c:\\oracle\\oradata\\temp01.dbf'
sql>size 500m extent management local uniform. size 10m;
4.change the storage setting
sql>alter tablespace app_data minimum extent 2m;
sql>alter tablespace app_data default storage(initial 2m next 2m maxextents 999);
5.taking tablespace offline or online
sql>alter tablespace app_data offline;
sql>alter tablespace app_data online;
6.read_only tablespace
sql>alter tablespace app_data read only|write;
7.droping tablespace
sql>drop tablespace app_data including contents;
8.enableing automatic extension of data files
sql>alter tablespace app_data add datafile 'c:\\oracle\\oradata\\app_data01.dbf' size 200m
sql>autoextend on next 10m maxsize 500m;
9.change the size fo data files manually
sql>alter database datafile 'c:\\oracle\\oradata\\app_data.dbf' resize 200m;
10.Moving data files: alter tablespace
sql>alter tablespace app_data rename datafile 'c:\\oracle\\oradata\\app_data.dbf'
sql>to 'c:\\oracle\\app_data.dbf';
11.moving data files:alter database
sql>alter database rename file 'c:\\oracle\\oradata\\app_data.dbf'
sql>to 'c:\\oracle\\app_data.dbf';
第三章:表
1.create a table
sql>create table table_name (column datatype,column datatype]....)
sql>tablespace tablespace_name [pctfree integer] [pctused integer]
sql>[initrans integer] [maxtrans integer]
sql>storage(initial 200k next 200k pctincrease 0 maxextents 50)
sql>[logging|nologging] [cache|nocache]
2.copy an existing table
sql>create table table_name [logging|nologging] as subquery
3.create temporary table
sql>create global temporary table xay_temp as select * from xay;
on commit preserve rows/on commit delete rows
4.pctfree = (average row size - initial row size) *100 /average row size
pctused = 100-pctfree- (average row size*100/available data space)
5.change storage and block utilization parameter
sql>alter table table_name pctfree=30 pctused=50 storage(next 500k
sql>minextents 2 maxextents 100);
6.manually allocating extents
sql>alter table table_name allocate extent(size 500k datafile 'c:/oracle/data.dbf');
7.move tablespace
sql>alter table employee move tablespace users;
8.deallocate of unused space
sql>alter table table_name deallocate unused [keep integer]
9.truncate a table
sql>truncate table table_name;
10.drop a table
sql>drop table table_name [cascade constraints];
11.drop a column
sql>alter table table_name drop column comments cascade constraints checkpoint 1000;
alter table table_name drop columns continue;
12.mark a column as unused
sql>alter table table_name set unused column comments cascade constraints;
alter table table_name drop unused columns checkpoint 1000;
alter table orders drop columns continue checkpoint 1000
data_dictionary : dba_unused_col_tabs
第四章:索引
1.creating function-based indexes
sql>create index summit.item_quantity on summit.item(quantity-quantity_shipped);
2.create a B-tree index
sql>create [unique] index index_name on table_name(column,.. asc/desc) tablespace
sql>tablespace_name [pctfree integer] [initrans integer] [maxtrans integer]
sql>[logging | nologging] [nosort] storage(initial 200k next 200k pctincrease 0
sql>maxextents 50);
3.pctfree(index)=(maximum number of rows-initial number of rows)*100/maximum number of rows
4.creating reverse key indexes
sql>create unique index xay_id on xay(a) reverse pctfree 30 storage(initial 200k
sql>next 200k pctincrease 0 maxextents 50) tablespace indx;
5.create bitmap index
sql>create bitmap index xay_id on xay(a) pctfree 30 storage( initial 200k next 200k
sql>pctincrease 0 maxextents 50) tablespace indx;
6.change storage parameter of index
sql>alter index xay_id storage (next 400k maxextents 100);
7.allocating index space
sql>alter index xay_id allocate extent(size 200k datafile 'c:/oracle/index.dbf');
8.alter index xay_id deallocate unused;
第五章:约束
1.define constraints as immediate or deferred
sql>alter session set constraint[s] = immediate/deferred/default;
set constraint[s] constraint_name/all immediate/deferred;
2. sql>drop table table_name cascade constraints
sql>drop tablespace tablespace_name including contents cascade constraints
3. define constraints while create a table
sql>create table xay(id number(7) constraint xay_id primary key deferrable
sql>using index storage(initial 100k next 100k) tablespace indx);
primary key/unique/references table(column)/check
4.enable constraints
sql>alter table xay enable novalidate constraint xay_id;
5.enable constraints
sql>alter table xay enable validate constraint xay_id;
第六章:LOAD数据
1.loading data using direct_load insert
sql>insert /*+append */ into emp nologging
sql>select * from emp_old;
2.parallel direct-load insert
sql>alter session enable parallel dml;
sql>insert /*+parallel(emp,2) */ into emp nologging
sql>select * from emp_old;
3.using sql*loader
sql>sqlldr scott/tiger \\
sql>control = ulcase6.ctl \\
sql>log = ulcase6.log direct=true
第七章:reorganizing data
1.using expoty
$exp scott/tiger tables(dept,emp) file=c:\\emp.dmp log=exp.log compress=n direct=y
2.using import
$imp scott/tiger tables(dept,emp) file=emp.dmp log=imp.log ignore=y
3.transporting a tablespace
sql>alter tablespace sales_ts read only;
$exp sys/.. file=xay.dmp transport_tablespace=y tablespace=sales_ts
triggers=n constraints=n
$copy datafile
$imp sys/.. file=xay.dmp transport_tablespace=y datafiles=(/disk1/sles01.dbf,/disk2
/sles02.dbf)
sql>alter tablespace sales_ts read write;
4.checking transport set
sql>DBMS_tts.transport_set_check(ts_list =>'sales_ts' ..,incl_constraints=>true);
在表transport_set_violations 中查看
sql>dbms_tts.isselfcontained 为true 是, 表示自包含
第八章: managing password security and resources
1.controlling account lock and password
sql>alter user juncky identified by oracle account unlock;
2.user_provided password function
sql>function_name(userid in varchar2(30),password in varchar2(30),
old_password in varchar2(30)) return boolean
3.create a profile : password setting
sql>create profile grace_5 limit failed_login_attempts 3
sql>password_lock_time unlimited password_life_time 30
sql>password_reuse_time 30 password_verify_function verify_function
sql>password_grace_time 5;
4.altering a profile
sql>alter profile default failed_login_attempts 3
sql>password_life_time 60 password_grace_time 10;
5.drop a profile
sql>drop profile grace_5 [cascade];
6.create a profile : resource limit
sql>create profile developer_prof limit sessions_per_user 2
sql>cpu_per_session 10000 idle_time 60 connect_time 480;
7. view =>resource_cost : alter resource cost
dba_Users,dba_profiles
8. enable resource limits
sql>alter system set resource_limit=true;
第九章:Managing users
1.create a user: database authentication
sql>create user juncky identified by oracle default tablespace users
sql>temporary tablespace temp quota 10m on data password expire
sql>[account lock|unlock] [profile profilename|default];
2.change user quota on tablespace
sql>alter user juncky quota 0 on users;
3.drop a user
sql>drop user juncky [cascade];
4. monitor user
view: dba_users , dba_ts_quotas
第十章:managing privileges
1.system privileges: view =>system_privilege_map ,dba_sys_privs,session_privs
2.grant system privilege
sql>grant create session,create table to managers;
sql>grant create session to scott with admin option;
with admin option can grant or revoke privilege from any user or role;
3.sysdba and sysoper privileges:
sysoper: startup,shutdown,alter database open|mount,alter database backup controlfile,
alter tablespace begin/end backup,recover database
alter database archivelog,restricted session
sysdba: sysoper privileges with admin option,create database,recover database until
4.password file members: view:=>v$pwfile_users
5.O7_dictionary_accessibility =true restriction access to view or tables in other schema
6.revoke system privilege
sql>revoke create table from karen;
sql>revoke create session from scott;
7.grant object privilege
sql>grant execute on dbms_pipe to public;
sql>grant update(first_name,salary) on employee to karen with grant option;
8.display object privilege : view =>dba_tab_privs, dba_col_privs
9.revoke object privilege
sql>revoke execute on dbms_pipe from scott [cascade constraints];
10.audit record view :=>sys.aud$
11. protecting the audit trail
sql>audit delete on sys.aud$ by access;
12.statement auditing
sql>audit user;
13.privilege auditing
sql>audit select any table by summit by access;
14.schema object auditing
sql>audit lock on summit.employee by access whenever successful;
15.view audit option : view=>all_def_audit_opts,dba_stmt_audit_opts,dba_priv_audit_opts,dba_obj_audit_opts
16.view audit result: view=>dba_audit_trail,dba_audit_exists,dba_audit_object,dba_audit_session,dba_audit_statement
第十一章: manager role
1.create roles
sql>create role sales_clerk;
sql>create role hr_clerk identified by bonus;
sql>create role hr_manager identified externally;
2.modify role
sql>alter role sales_clerk identified by commission;
sql>alter role hr_clerk identified externally;
sql>alter role hr_manager not identified;
3.assigning roles
sql>grant sales_clerk to scott;
sql>grant hr_clerk to hr_manager;
sql>grant hr_manager to scott with admin option;
4.establish default role
sql>alter user scott default role hr_clerk,sales_clerk;
sql>alter user scott default role all;
sql>alter user scott default role all except hr_clerk;
sql>alter user scott default role none;
5.enable and disable roles
sql>set role hr_clerk;
sql>set role sales_clerk identified by commission;
sql>set role all except sales_clerk;
sql>set role none;
6.remove role from user
sql>revoke sales_clerk from scott;
sql>revoke hr_manager from public;
7.remove role
sql>drop role hr_manager;
8.display role information
view: =>dba_roles,dba_role_privs,role_role_privs,dba_sys_privs,role_sys_privs,role_tab_privs,session_roles
第十二章: BACKUP and RECOVERY
1. v$sga,v$instance,v$process,v$bgprocess,v$database,v$datafile,v$sgastat
2. Rman need set dbwr_IO_slaves or backup_tape_IO_slaves and large_pool_size
3. Monitoring Parallel Rollback
>v$fast_start_servers , v$fast_start_transactions
4.perform. a closed database backup (noarchivelog)
>shutdown immediate
>cp files /backup/
>startup
5.restore to a different location
>connect system/manager as sysdba
>startup mount
>alter database rename file '/disk1/../user.dbf' to '/disk2/../user.dbf';
>alter database open;
6.recover syntax
--recover a mounted database
>recover database;
>recover datafile '/disk1/data/df2.dbf';
>alter database recover database;
--recover an opened database
>recover tablespace user_data;
>recover datafile 2;
>alter database recover datafile 2;
7.how to apply redo log files automatically
>set autorecovery on
>recover automatic datafile 4;
8.complete recovery:
--method 1(mounted databae)
>copy c:\\backup\\user.dbf c:\\oradata\\user.dbf
>startup mount
>recover datafile 'c:\\oradata\\user.dbf;
>alter database open;
--method 2(opened database,initially opened,not system or rollback datafile)
>copy c:\\backup\\user.dbf c:\\oradata\\user.dbf (alter tablespace offline)
>recover datafile 'c:\\oradata\\user.dbf' or
>recover tablespace user_data;
>alter database datafile 'c:\\oradata\\user.dbf' online or
>alter tablespace user_data online;
--method 3(opened database,initially closed not system or rollback datafile)
>startup mount
>alter database datafile 'c:\\oradata\\user.dbf' offline;
>alter database open
>copy c:\\backup\\user.dbf d:\\oradata\\user.dbf
>alter database rename file 'c:\\oradata\\user.dbf' to 'd:\\oradata\\user.dbf'
>recover datafile 'e:\\oradata\\user.dbf' or recover tablespace user_data;
>alter tablespace user_data online;
--method 4(loss of data file with no backup and have all archive log)
>alter tablespace user_data offline immediate;
>alter database create datafile 'd:\\oradata\\user.dbf' as 'c:\\oradata\\user.dbf''
>recover tablespace user_data;
>alter tablespace user_data online
5.perform. an open database backup
>alter tablespace user_data begin backup;
>copy files /backup/
>alter database datafile '/c:/../data.dbf' end backup;
>alter system switch logfile;
6.backup a control file
>alter database backup controlfile to 'control1.bkp';
>alter database backup controlfile to trace;
7.recovery (noarchivelog mode)
>shutdown abort
>cp files
>startup
8.recovery of file in backup mode
>alter database datafile 2 end backup;
9.clearing redo log file
>alter database clear unarchived logfile group 1;
>alter database clear unarchived logfile group 1 unrecoverable datafile;
10.redo log recovery
>alter database add logfile group 3 'c:\\oradata\\redo03.log' size 1000k;
>alter database drop logfile group 1;
>alter database open;
or >cp c:\\oradata\\redo02.log' c:\\oradata\\redo01.log
>alter database clear logfile 'c:\\oradata\\log01.log';
基于Oracle Spatial的时态空间数据库设计数据库教程
- 远程管理sqlserver的注册方法数据库教程2022-12-25
- Oracle数据库优化策略总结2024-10-08
- 在两机器间克隆数据库的两种方法数据库教程2024-04-16
- 监控Oracle数据库的常用shell脚本数据库2023-12-31
- 全检索的应用数据库教程2023-04-20
- PL/SQL Developer数据库教程2022-12-11
- 右外连接数据库教程2022-12-11
- Oracle数据库的几种启动和关闭方式2024-03-28
- Mysql和Oracle数据库中的分页查询2022-12-11
- PL/SQL流程控制数据库教程2023-04-26