Oracle Database 10gEnterprise Edition Release 10.1.0.2.0 - Production With the Partitioning, OLAP and Data Mining options
SQL>
·221·
在控制台上打印出的信息,可以清楚看到Oracle数据库的版本为10.1.0.2.0。
2.在对数据库进行重要操作时,首先应该确认数据库身份,以免在其他数据库上进行操作。尝试利用SQL Plus显示数据库实例名称。
1)利用SQL Plus登录数据库:
C:\\>sqlplus / as sysdba
SQL*Plus: Release 10.1.0.2.0 - Production on 星期日 7月 10 18:43:50 2011
Copyright (c) 1982, 2004, Oracle. All rights reserved.
Connected to:
Oracle Database 10gEnterprise Edition Release 10.1.0.2.0 - Production With the Partitioning, OLAP and Data Mining options
SQL>
2)键入show parameter instance_name来查看实例名称
SQL> show parameter instance_name
NAME TYPE VALUE ------------------------------------ ----------- ------------------------------ instance_name string orcl
3.试着利用SQL Plus来创建一个新表test (id number, name varchar2(20))。
可以通过如下步骤利用SQL Plus来创建一个新表: (1)利用SQL Plus登录数据库ORCL。
在Windows的【开始】|【运行】的【打开】文本框中输入sqlplus scott/abc123@orcl来登录数据库ORCL。
(2)在SQL Plus命令行下输入如下命令来创建新表test:
create table test (id number, name varchar2(20));
(3)在SQL Plus会出现表创建成功的提示,如图所示。
此时,证明表创建成功。
精品文档
· 222·
第4章 Oracle数据库
1.在数据库中创建一个表lob_source(id number, description clob)。将表lob_test的数据导入另外一个数据表lob_dest(id number, description clob)。
1)创建表lob_source
SQL> create table lob_source(id number, description clob);
Table created.
2)向表lob_source中插入测试数据
SQL> insert into lob_source values(1, 'a clob text from source');
1 row created.
3)创建测试表lob_dest
SQL> create table lob_dest(id number, description clob);
Table created.
4)向测试表lob_dest中插入测试数据,但是不包含clob类型的description列
SQL> insert into lob_dest(id) values(1);
1 row created.
5)利用表lob_source中的description信息,更新表lob_dest中的description信息。
SQL> update lob_dest set description = (select description from lob_source source where source.id = lob_dest.id);
1 row updated.
SQL> select * from lob_dest; IDDESCRIPTION
-------------------------------------------------- 1 a clob text from source
该实例实际说明了针对lob类型的数据的操作方式。由于lob类型的数据的特殊性,因此在实现数据库迁移时,如果遇到棘手的lob类型处理,可以考虑利用本例所演示的方法。
2.利用exp/imp方式,将数据库orcl中users表的内容,迁移到数据库test中。 1)在数据库orcl中,创建测试表users
SQL> create table users(user_id number, user_name varchar(20));
Table created.
SQL> insert into users values(1, 'allen');
1 row created.
SQL> insert into users values(2, 'mike'); 精品文档
1 row created.
SQL> commit;
Commit complete.
·223·
2)导出表users到d:\%user.bak
C:\\>exp system/abc123@//192.168.16.5/orcl tables=(users) file='d:/users.bak'
Export: Release 10.1.0.2.0 - Production on 星期三 7月 13 00:06:22 2011
Copyright (c) 1982, 2004, Oracle. All rights reserved.
Connected to: Oracle Database 10gEnterprise Edition Release 10.1.0.2.0 - Production With the Partitioning, OLAP and Data Mining options
Export done in ZHS16GBK character set and AL16UTF16 NCHAR character set
About to export specified tables via Conventional Path ...
. . exporting table USERS 2 rows exported Export terminated successfully without warnings.
3)将d:\%user.bak的内容导入数据库test
C:\\>imp system/abc123@//192.168.16.5/test tables=(users) file='d:/users.bak'
Import: Release 10.1.0.2.0 - Production on 星期三 7月 13 00:10:09 2011
Copyright (c) 1982, 2004, Oracle. All rights reserved.
Connected to: Oracle Database 10gEnterprise Edition Release 10.1.0.2.0 - Production With the Partitioning, OLAP and Data Mining options
Export file created by EXPORT:V10.01.00 via conventional path
import done in ZHS16GBK character set and AL16UTF16 NCHAR character set . importing SYSTEM's objects into SYSTEM
. . importing table \ 2 rows imported Import terminated successfully without warnings.
3.如果数据库处于归档模式,那么,随着时间的累积,归档日志将会占用很大空间。一旦达到默认大小20G,那么将导致数据库挂起,在告警日志中一般会有如下提示:ORA-00257: archiver error. Connect internal only, until freed。利用修改参数db_recovery_file_dest_size的方式,快速解决数据库无法归档的问题。
1)查看默认空间大小
SQL> show parameter db_recovery_file_dest_size
NAME TYPE VALUE ------------------------------------ ---------------
db_recovery_file_dest_size big integer 2G
2)修改其大小
精品文档
· 224·
SQL> alter system set db_recovery_file_dest_size=3G scope=both;
System altered.
这一用法,适合于快速处理现场由于归档日志过大导致的数据库挂起。
第5章 Oracle数据表对象
1.创建一个表空间testsize,其数据文件大小为2M,并设置自动增长尺寸为1M。在表空间中建立一个数据表,并向其中插入大量数据,观察表空间文件的变化。
1)创建一个大小为2M,自动增长尺寸为1M的表空间
SQL> create tablespace testsize datafile 'e:\\database\\oracle\\testsize_data.dbf' size 2M 2 autoextend on next 1M 3 /
Tablespace created
2)创建一个数据表test_tablespace_size(test_data varchar2(100))
SQL> create table test_tablespace_size(test_data varchar2(100)) tablespace testsize;
Table created
3)利用如下SQL语句向表test_tablespace_size中插入数据
SQL> begin
2 for i in 1..100000 loop
3 insert into test_tablespace_size values('0123456789'); 4 end loop; 5 commit; 6 end; 7 /
PL/SQL procedure successfully completed
4)此时,表空间文件testsize_data.dbf将增长为3M。 2.删除表空间testsize,同时删除其物理文件。
删除表空间应该使用drop tablespace命令,同时删除物理文件,应使用including contents and datafiles。
SQL> drop tablespace testsize including contents and datafiles;
Tablespace dropped.
3.在数据库中创建一个表test_bak,并向其中插入10条记录。利用exp/imp命令来实现该数据表的备份/恢复。
1)在数据库中创建表test_bak(id number)。
SQL> create table test_bak(id number);
Table created
2)向其中插入10条数据。
精品文档
SQL> begin
2 for i in 1..10 loop
3 insert into test_bak values(i); 4 end loop; 5 end; 6 /
PL/SQL procedure successfully completed
SQL> commit;
Commit complete
·225·
3)利用exp命令备份该表
C:\\>exp system/abc123@//192.168.16.5/orcl tables=(test_bak) file='d:/test_bak.bak'
Export: Release 10.1.0.2.0 - Production on 星期六 7月 16 14:51:54 2011
Copyright (c) 1982, 2004, Oracle. All rights reserved.
Connected to: Oracle Database 10gEnterprise Edition Release 10.1.0.2.0 - Production With the Partitioning, OLAP and Data Mining options
Export done in ZHS16GBK character set and AL16UTF16 NCHAR character set
About to export specified tables via Conventional Path ...
. . exporting table TEST_BAK 10 rows exported Export terminated successfully without warnings..
4)在数据库中删除表test_bak。
SQL> drop table test_bak;
Table dropped
5)将表test_bak重新导入数据库
C:\\>imp system/abc123@//192.168.16.5/orcl tables=(test_bak) file='d:/test_bak.bak'
Import: Release 10.1.0.2.0 - Production on 星期六 7月 16 14:54:24 2011
Copyright (c) 1982, 2004, Oracle. All rights reserved.
Connected to: Oracle Database 10gEnterprise Edition Release 10.1.0.2.0 - Production With the Partitioning, OLAP and Data Mining options
Export file created by EXPORT:V10.01.00 via conventional path
import done in ZHS16GBK character set and AL16UTF16 NCHAR character set . importing SYSTEM's objects into SYSTEM
. . importing table \ 10 rows imported Import terminated successfully without warnings. 精品文档