数据库系统模式及应用访问数据库数据的过程
数据库系统 数据库管理系统:DBMS 数据库:DB 数据库系统:DBS--Database System “数据库系统”在大多数时候都是指DBMS。但是严格地来说,数据库系统--DBS是指在计算机系统中引入数据库之后的系统,一般由数据库、数据库管理系统(及其开发工具)、应用系统、数据库管理员(DBA--Database Adminis...
只做运维并不是DBA的命,数据库系统设计过程
DBA除了数据库管理与维护,也可以转型为高级的数据库设计师。因为过去运维经验教训无意识中培养DBA在高效、可扩展、底层数据模型搭建中应该注意的环节及细节。接下来简单介绍一下一个数据库系统的设计过程概括性的重点知识点。没人敢说DBA是个只是做运维的命,更何况...
Oracle中常见的33个等待事件小结
在Oracle 10g中的等待事件有872个,11g中等待事件1116个。 我们可以通过v$event_name 视图来查看等待事件的相关信息.一. 等待事件的相关知识1.1 等待事件主要可以分为两类,即空闲(IDLE)等待事件和非空闲(NON-IDLE)等待事件。1). 空闲等待事件指ORACLE正等待某种工作,在诊断和优化数据库的时候,不用过多注意这部分...
巧用分区查询案例一则
近期一位同事问我他们通过pl/sql dev导出为csv文本文件的SQL语句一直执行不下去原来数据库仓库里的一张分区表,数据量超级多,一天平均数据量超过8千多万行...而他们想导出一个月的数据,但是实际执行sql时发现sql无法执行完成。然后他们将查询条件缩减为一个星期,结果还是不行....尝试按天导出,试了以后还是不行...他们几乎折腾了3天多,甚至提出了一些不太合理数据库要求(比如讲数据库的temp表空间夸张为几个TB)。他们sql是如下:[@more@]select t.cuttime,t.ceventid,t.cstbid,t.csource from abc.test_source twhere t.cuttime>
Sample Schemas建库后手动创建
最近在网上找到关于oracle10g sample_schema的部分脚本和数据。如下根据这些数据创建sample_schema过程的记录。[oracle@dbserv1 db10g]$ cd demo[oracle@dbserv1 demo]$ lsschema[oracle@dbserv1 demo]$ cd schema/[oracle@dbserv1 schema]$ more README.txt 在readme.txt中有安装的步骤,但是安装过程并不那么顺利,按readme中Instructions to create the schemas,我们先得准备sys,system及其他所创建用户的密码:1、确定用户名和密码 SYSTEM: oracleSYS: oracleHR: hrOE: oePM: pmIX: ixSH: shBI bi[@more@]2、创建系统所需的表空间:S
大表的备份及清理方法
有时因存空间原因,我们需要对数据库中的大表进行清理,但是清理之前我们还希望对那些所谓“没用 ” 表的数据进行备份。如下在Oracle中对大表进行导出(逻辑备份)后的truncate方法的介绍。如果采用expdp方式,则需建立directory或查看现有的目录:select * from dba_directories;例如想要备份后清理或删除的表名为abctest,导出语法如下所示:expdp system/pasward@SID DIRECTORY=sodir DUMPFILE=mr_abctest.dmp tables=(mr.abctest) content=all LOGFILE=err_201210.log[@more@]采用exp的语法如下:exp system/pasward@SID owner=MR fil
Oracle 中手工创建数据库的语法
前几天在网上看到了此文章,对建库脚本有了另一种收获,觉得很好。为了连接的丢失,决定在此转载。源文档 Oracle 8i:(还不支持 9i 的 AUM 特性,需要DBA 手工管理 Undo 表空间大小和回滚段数量)CREATE DATABASE"test"maxdatafiles 254maxinstances 8maxlogfiles 32character setUS7ASCIInational characterset UTF8DATAFILE'/opt/oracle/oradata/test/system01.dbf' SIZE 260M AUTOEXTEND ON NEXT 10240Klogfile '
手工配置listener.ora文件及TNS-01201错误
今天尝试手工编写listener.ora文件,结果遇到了如下错误:TNS-01201: Listener cannot find executable /u01/app/oracle/OracleHome/db10g/bin/extproc2 for SID PLSExtProc改了几次好容易才找到原因,虽然原因很简单,但是关于listener.ora及tnsnames.ora在内的文件有几个简单的语法需要注意,这个在官方文档上也有类此解释。[oracle@ocm1 admin]$ vi listener.oraLISTENER = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = ocm1)(PORT = 1521)) (ADDRESS=(PROTOCOL=ipc
Oracle建库必备的核心初始化参数
安装完数据库软件的下一步就是创建数据库,如果是手工创建数据库或对数据库所占用的内存进行一些合理化配置,就需要理解必备的建库初始化参数。 今天在手工建库过程中,发现$ORACLE_HOME/dbs/下的init.ora和initdw.ora两个文件内容也是值得读一遍。因此产生了Oracle建库必备的核心初始化参数有哪些的想法,总结如下:1、Oracle 9i 环境以1G物理内存为例,给OS留50%,其余用于Oracle。在Oracle9i提出了pga_agregate_target参数。 db_name = MY_DB_NAMEcontrol_files = (ora_control1, ora_control2)shared_pool_size = 50Mpga_
Oracle基本视图总结
当我们基本熟悉了Oracle体系架构后,可能需要将这些信息从数据库字典中查出来看以便诊断和分析。如下是根据Oracle 的体系架构整理出来基本视图分类列表: 一、数据库和实例信息 select * from gV$INSTANCE select * from V$DATABASE select * from V$version select * from V$option --select s.NAME,s.BYTES/1024/1024 bytesM, s.RESIZEABLE from v$sgainfo s select * from v$sgainfo[@more@]二、物理结构相关的信息 select * from v$parameter p where p.ISDEFAULT='FALSE' select * fro
Oracle10g在Linux4.7_32位上的安装
一、修改操作系统文件 1、配置主机名: [root@x3a-test ~]# hostname x3a-test [root@x3a-test ~]# hostname x3a-test [root@x3a-test ~]# vi /etc/sysconfig/network NETWORKING=yes HOSTNAME=x3a-test 2、修改 /etc/hosts文件 [root@x3a-test cdrom]# vi /etc/hosts # Do not remove the following line, or various programs # that require network functionality will fail. 127.0.0.1 localhost.localdomain localhost 192.168.2.6 x3a-test[@more@]3、修改
ORA-00600: internal error code, arguments: [kspsetpao1], [462], [415], [*]
C:>sqlplus / as sysdbaSQL*Plus: Release 10.2.0.3.0 - Production on 星期二 5月 22 10:18:15 2012Copyright (c) 1982, 2006, Oracle. All Rights Reserved.已连接到空闲例程。SQL> create spfile from pfile;create spfile from pfile*第 1 行出现错误:ORA-00600: internal error code, arguments: [kspsetpao1], [462], [415], [*],[user_dump_dest], [27], [], [][@more@] SQL> create spfile from pfile;create spfile from pfile*第 1 行出现错误:ORA-00600: internal error code, arguments: [kspsetpao1], [462
windows上的ORA-12560错误
在测试机上安装Oracle,长时间不登陆,后来偶尔登录会发现如下问题情况,这并不是我们忘了密码或系统没有密码文件文件。很有可能我们没有配置环境变量:set ORACLE_SID=<你的SID>C:UsersAdministrator>sqlplus / as sysdbaSQL*Plus: Release 10.2.0.3.0 - Production on 星期一 5月 21 19:21:29 2012Copyright (c) 1982, 2006, Oracle. All Rights Reserved.ERROR:ORA-12560: TNS: 协议适配器错误请输入用户名: system输入口令:ERROR:ORA-12560: TNS: 协议适配器错误[@more@] 请输入用户名: system输入口令:ERROR:ORA-
Oracle10g 手工建库
环境:RedHat Enterprice Linux 5.4 、Oracle 10g,必须提前安装好Oracle数据库软件。 1. 设置环境变量ORACLE_SID 假设要求创建的数据库的SID是test export ORACLE_SID=test export ORALE_BASE=/var/oracle 2.手工创建如下目录: mkdir -p $ORACLE_BASE/admin/test/cdump mkdir -p $ORACLE_BASE/admin/test/bdump mkdir -p $ORACLE_BASE/admin/test/udump mkdir -p $ORACLE_BASE/admin/test/adump mkdir -p $ORACLE_BASE/oradata/test [@more@]3. 创建最简单的initTEST.ora文
Oracle回收站的清理方法
purge DBA_RECYCLEBIN用于删除Oracle数据库回收站的所有数据,需要sys登录执行。[@more@]-bash-3.00# su - oracle[oracle@rpt]$ sqlplus / as sysdba SQL*Plus: Release 10.2.0.1.0 - Production on Thu Mar 29 12:00:25 2012 Copyright (c) 1982, 2005, Oracle. All rights reserved. Connected to:Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - ProductionWith the Partitioning, OLAP and Data Mining options sys@rpt> SELECT count(*) FROM dba_recyclebin; COUNT(*)---------- 13545 sys@rpt> purge
ORCLE中ASM磁盘空间使用情况查询
之前经常用如下方式进行查询:
Oracle Listener 动态注册与静态注册
注册就是将数据库作为一个服务注册到监听程序。客户端不需要知道数据库名和实例名,只需要知道该数据库对外提供的服务名就可以申请连接到数据库。这个服务名可能与实例名一样,也有可能不一样。 在数据库服务器启动过程中,数据库服务器会向监听程序注册相应的服务(无论何时启动一个数据库,默认地都有两条信息注册到监听器中:数据库服务器对应的实例和服务。) 相当于是这样:在数据库服务器和客户端之间有一监听程序(Listener),在监听程序中,会记录相应数据库对应的服务名(一个数据库可能对应有多个服务名),当客户端需要连
Oracle OS 认证, 口令文件
1、os认证oracle安装之后默认情况下是启用了os认证的,这里提到的os认证是指服务器端os认证。os认证的意思把登录数据库的用户和口令校验放在了操作系统一级。如果以安装oracle时的用户登录os,那么此时在登录oracle数据库时不需要任何验证,如:SQL> connect /as sysdba已连接。SQL> connect sys/aaa@dmt as sysdba已连接。SQL> connect sys/bbb as sysdba已连接。SQL> connect aaa/bbb as sysdba已连接。SQL> show userUSER 为 "SYS"SQL>[@more@]不论输入什么用户(哪怕这个用户如aaa在数据库中根本不存在)
Oracle Sql loader 导入数据脚本的编写过程
今天同事打电话说帮他导入数据,通pl sql导入非常慢(几个小时都不行)。因此我采用oracle sql loader进行了导入。1、文本文件有两个字段,因此根据这个生产了表:SQL> create table rep.tmp_znk_yb( 2 znkh varchar2(11), 3 jmmc varchar2(60) 4 ) 5 tablespace rep; Table created[@more@]2、在服务器上编写sql loader的ctl文件:[boss]@db1$more znk.ctl LOAD DATACHARACTERSET ZHS16GBKINFILE '20110727.txt'APPENDINTO TABLE rep.tmp_znk_ybFIELDS TERMINATED BY ','( znkh, jmmc) 如果另个字段用空格(即,中间没
bbed亲身体会,查看block format
今天在www.dbsnake.com 上看到“关于9i以后block format的含义”的文章,在本机上进行了测试。测试过程如下:C:Documents and SettingsAdministrator>sqlplus / as sysdbaSYS@kuqlan10>create table t8k tablespace users as select * from dba_users;表已创建。SYS@kuqlan10>alter system checkpoint; 系统已更改。SYS@kuqlan10>select dbms_rowid.rowid_relative_fno(rowid)||'_'||dbms_rowid.rowid_block_number(rowid) location from t8k where rownum<2;LOCATION---------------------------------------------------