搜档网
当前位置:搜档网 › Oracle数据库教程 —— linux系统 重启盘符错乱问题

Oracle数据库教程 —— linux系统 重启盘符错乱问题

Oracle数据库教程 —— linux系统 重启盘符错乱问题
Oracle数据库教程 —— linux系统 重启盘符错乱问题

Oracle数据库教程

—— linux系统重启盘符错乱问题

linux磁盘重启乱序问题处理

最近到客户那去巡检时,客户提到一个问题,他们的rac在重启的时候,原来的sda1、sdb1、sdc1会对应变成sdd1、sde1、sdf1,由于他们使用的是盘符来绑定裸设备,所以启动后,经常要手动执行以下命令

[root@ractest1 ~]# raw /dev/raw/raw1 /dev/sda1

[root@ractest1 ~]# raw /dev/raw/raw2 /dev/sdb1

[root@ractest1 ~]# raw /dev/raw/raw3 /dev/sdc1

并且,比较奇怪的事,两边有时认得的盘完全不一样,一边是sda\b\c,另一边是sdd\e\f,这样,使oracle rac的共享盘出现问题。

在了解了他们的情况后,我基本上明白是什么原因,这种盘序错乱,与linux对磁盘的扫描机制有关,所以我们只能从另一角度去规避这样的问题,使用id号去绑定,这样就没有问题。在告诉他后,他同意我们对他原来的绑定方式进行修改,具体操作如下:

[root@ractest1 ~]# fdisk -l

Disk /dev/sdd: 429.4 GB, 429496729600 bytes

255 heads, 63 sectors/track, 52216 cylinders

Units = cylinders of 16065 * 512 = 8225280 bytes

Device

Boot Start End Blocks Id System

/dev/sdd1 1 52216 419424988+ 83 Linux

Disk /dev/sde: 209 MB, 209715200 bytes

7 heads, 58 sectors/track, 1008 cylinders

Units = cylinders of 406 * 512 = 207872 bytes

Device

Boot Start End Blocks Id System

/dev/sde1 1 1008 204595

83 Linux

Disk /dev/sdf: 209 MB, 209715200 bytes

7 heads, 58 sectors/track, 1008 cylinders

Units = cylinders of 406 * 512 = 207872 bytes

Device

Boot Start End Blocks Id System

/dev/sdf1 1 1008 204595 83 Linux

可以看到,刚重启的节点1是sdd/sde/sdf

另一个节点的情况是:

[root@ractest2 ~]# fdisk -l

Disk /dev/sda: 429.4 GB, 429496729600 bytes

255 heads, 63 sectors/track, 52216 cylinders

Units = cylinders of 16065 * 512 = 8225280 bytes

Device

Boot Start End Blocks Id System

/dev/sda1 1 52216 419424988+ 83 Linux

Disk /dev/sdb: 209 MB, 209715200 bytes

7 heads, 58 sectors/track, 1008 cylinders

Units = cylinders of 406 * 512 = 207872 bytes

Device

Boot Start End Blocks Id System

/dev/sdb1 1 1008 204595 83 Linux

Disk /dev/sdc: 209 MB, 209715200 bytes

7 heads, 58 sectors/track, 1008 cylinders

Units = cylinders of 406 * 512 = 207872 bytes

Device

Boot Start End Blocks Id System

/dev/sdc1 1 1008 204595 83 Linux

分别在两台机子上执行如下命令:

[root@ractest2 ~] scsi_id -g -s /block/sda

360080e500017ff06000004054c47bd4a

[root@ractest2 ~] scsi_id -g -s /block/sdb

360080e500017fdd8000004c74c6344ef

[root@ractest2 ~] scsi_id -g -s /block/sdc

360080e500017ff060000044f4c63446e

[root@ractest1 ~] scsi_id -g -s /block/sdd

360080e500017ff06000004054c47bd4a

[root@ractest1 ~] scsi_id -g -s /block/sde

360080e500017fdd8000004c74c6344ef

[root@ractest1 ~] scsi_id -g -s /block/sdf

360080e500017ff060000044f4c63446e

能过对比,可以看到sda与sdd,sdb与sde,sdc与sdf是对应用的,所以我们启用udev,通过绑定id来规避这个问题!

[root@ractest1 ~]# cd /etc/udev/rules.d/

[root@ractest1 rules.d]# ls -a

. 50-udev.rules 60-pcmcia.rules 61-uinput-wacom.rules 90-hal.rules

.. 51-hotplug.rules 60-raw.rules

85-pcscd_ccid.rules 95-pam-console.rules

05-udev-early.rules 60-libsane.rules 60-wacom.rules 90-al sa.rules 98-kexec.rules

40-multipath.rules 60-net.rules 61-uinput-stddev.rules 90-dm.ru les bluetooth.rules

[root@ractest1 rules.d]# vi 60-raw.rules

# Enter raw device bindings here.

#

# An example would be:

# ACTION=="add", KERNEL=="sda", RUN+="/bin/raw /dev/raw/raw1 %N"

# to bind /dev/raw/raw1 to /dev/sda, or

# ACTION=="add", ENV{MAJOR}=="8", ENV{MINOR}=="1", RUN+="/bin/raw

/dev/raw/raw2 %M %m"

# to bind /dev/raw/raw2 to the device with major 8, minor 1.

ACTION=="add", KERNEL=="sd*1", PROGRAM=="/sbin/scsi_id -g -u -s %p",

RESULT=="360080e500017ff060000044f4c63446e", RUN+="/bin/raw /dev/raw/raw1 %N" ACTION=="add", KERNEL=="sd*1", PROGRAM=="/sbin/scsi_id -g -u -s %p",

RESULT=="360080e500017fdd8000004c74c6344ef", RUN+="/bin/raw /dev/raw/raw2 %N"

ACTION=="add", KERNEL=="sd*1", PROGRAM=="/sbin/scsi_id -g -u -s %p",

RESULT=="360080e500017ff06000004054c47bd4a", RUN+="/bin/raw /dev/raw/raw3 %N" KERNEL=="raw[1-3]", OWNER="oracle", GROUP="dba", MODE="660"

[root@ractest1 rules.d]# start_udev

Starting udev: [ OK ]

[root@ractest1 rules.d]#

[root@ractest1 rules.d]# raw -qa

/dev/raw/raw1: bound to major 8, minor 81

/dev/raw/raw2: bound to major 8, minor 65

/dev/raw/raw3: bound to major 8, minor 49

同理,在另一台机,也进行同样的操作。

经过如上操作后,所有问题都解决了,不管怎么重启都不会有问题!

更多文章可见:我们其中一位工程师的博客:https://www.sodocs.net/doc/24611245.html,/

Linux下Oracle 11g数据库全库自动备份(EXPDP)

使用EXPDP方式备份整个实例 本教程可使用system账户将整个实例备份(包含空表),并自动删除超过6天的历史数据。 1、r oot用户登录服务器 mkdir-p/backup/oracledata#新建Oracle数据库备份目录 chown-Roracle:oinstall/backup/oracledata-R#设置目录权限为oinstall用户组的oracle用户(用户 oracle与用户组oinstall是在安装Oracle数据库时设置的) 2、创 因为使用 su–oracle# 3、编 #/bin/sh export expdpsystem/123456@shuweiDUMPFILE=$dmpfileDIRECTORY=expdp_bak_dirfull=y echo"Deletethefilebakupbefore6days..." find/backup/oracledata/-mtime+6-name"*.dmp"-execrm-rf'{}'\; echo"Deletethefilebakupsuccessfully." echo"Bakupcompleted." chmod+x/backup/oracledata/ordatabak.sh??#添加脚本执行权限 4、设置系统自动定时执行备份脚本 vi/etc/crontab#编辑系统任务计划

将下面的代码写入最后一行: 302***oracle/backup/oracledata/ordatabak.sh #每天凌晨2点30分,以oracle用户执行ordatabak.sh备份文件 :wq#保存退出 servicecrondrestart#重启系统计划服务 即每天凌晨2点30分进行备份,如需每天备份多次,可设置不同时间段备份:例如:*3,13,18***oracle/backup/oracledata/ordatabak.sh 即每天3点、13点、18点进行备份。 说明:文件备份目录,用户oracle必须有更改权限,否则无法备份。

Oracle数据库系统紧急故障处理方法

Oracle数据库系统紧急故障处理方法 Oracle物理结构故障是指构成数据库的各个物理文件损坏而导致的各种数据库故障。这些故障可能是由于硬件故障造成的,也可能是人为误操作而引起。所以我们首先要判断问题的起因,如果是硬件故障则首先要解决硬件问题。在无硬件问题的前提下我们才能按照下面的处理方发来进一步处理。 控制文件损坏: 控制文件记录了关于oracle的重要配置信息,如数据库名、字符集名字、各个数据文件、日志文件的位置等等信息。控制文件的损坏,会导致数据库异常关闭。一旦缺少控制文件,数据库也无法启动,这是一种比较严重的错误。 损坏单个控制文件: 1. 确保数据库已经关闭,如果没有用下面的命令来关闭数据库: svrmgrl>shutdown immediate; 2. 查看初始化文件$ORACLE_BASE/admin/pfile/initORCL.ora,确定所有控制文件的路径。 3. 用操作系统命令将其它正确的控制文件覆盖错误的控制文件。 4. 用下面的命令重新启动数据库: svrmgrl>startup; 5. 用适当的方法进行数据库全备份。 损坏所有的控制文件: 1. 确保数据库已经关闭,如果没有用下面的命令来关闭数据库: svrmgrl>shutdown immediate; 2. 从相应的备份结果集中恢复最近的控制文件。对于没有采用带库备份的点可以直接从磁带上将最近的控制文件备份恢复到相应目录;对于采用带库备份的点用相应的rman脚本来恢复最近的控制文件。 3. 用下面的命令来创建产生数据库控制文件的脚本:

svrmgrl>startup mount; svrmgrl>alter database backup controlfile to trace noresetlogs; 4. 修改第三步产生的trace文件,将其中关于创建控制文件的一部分语句拷贝出来并做些修改,使得它能够体现最新的数据库结构。假设产生的sql文件名字为createcontrol.sql. 注意: Trace文件的具体路径可以在执行完第3)步操作后查看 $ORACLE_BASE/admin/bdump/alert_ORCL.ora文件来确定。 5. 用下面命令重新创建控制文件: svrmgrl>shutdown abort; svrmgrl>startup nomount; svrmgrl>@createcontrol.sql; 6. 用适当的方法进行数据库全备份。 重做日志文件损坏: 数据库的所有增、删、改都会记录入重做日志。如果当前激活的重做日志文件损坏,会导致数据库异常关闭。非激活的重做日志最终也会因为日志切换变为激活的重做日志,所以损坏的非激活的重做日志最终也会导致数据库的异常终止。在ipas/mSwitch中每组重做日志只有一个成员,所以在下面的分析中只考虑重做日志组损坏的情况,而不考虑单个重做日志成员损坏的情况。 确定损坏的重做日志的位置及其状态: 1. 如果数据库处于可用状态: select * from v$logfile; svrmgrl>select * from v$log; 2. 如果数据库处于已经异常终止: svrmlgr>startup mount; svrmgrl>select * from v$logfile;

linux 下命令行安装Oracle步骤

LINUX命令行下安装Oracle11.2 关闭防火墙 service iptables stop chkconfig iptables off 创建组和用户 groupadd dba groupadd oper groupadd oinstall useradd oracle /usr/sbin/usermod -g oinstall -G dba oracle passwd oracle 输入两遍密码 创建目录并授权 mkdir -p /opt/oracle/product mkdir -p /opt/oracle/product/OraHome mkdir -p /opt/oraInventory mkdir -p /opt/oracle/oradata

mkdir -p /var/opt/oracle chown -R oracle.oinstall /opt/oracle chown -R oracle.oinstall /opt/oracle/oradata chown -R oracle.oinstall /opt/oracle/product/OraHome chown -R oracle.dba /opt/oraInventory chown oracle.dba /var/opt/oracle chmod -R 775 /opt/oracle chmod -R 755 /var/opt/oracle 切换到oracle用户 su - oracle 设置环境变量 vi .bash_profile 添加: export JAVA_HOME=/opt/oracle/product/OraHome/jdk export ORACLE_BASE=/opt/oracle export ORACLE_HOME=$ORACLE_BASE/product/OraHome export ORACLE_SID=orcl export PATH=$PATH:$ORACLE_HOME/bin:$HOME/bin

Linux下Oracle导入dmp文件

Linux下向oracle数据库倒入dmp包的方式 1、登录linux,以oracle用户登录(如果是root用户登录的,登录后用 su - oracle命令切换成oracle用户) 2、以sysdba方式来打开sqlplus,命令如下: sqlplus "/as sysdba" 3、查看常规将用户表空间放置位置:执行如下sql: select name from v$datafile; 上边的sql一般就将你的用户表空间文件位置查出来了。 4、创建用户表空间: CREATE TABLESPACE 表空间名DATAFILE '/oracle/oradata/test/notifydb.dbf(表空间位置)' SIZE 200M AUTOEXTEND ON EXTENT MANAGEMENT LOCAL SEGMENT SPACE MANAGEMENT AUTO; 5、创建用户,指定密码和上边创建的用户表空间 CREATE USER 用户名 IDENTIFIED BY 密码 DEFAULT TABLESPACE 表空间名; 6、赋予权限 grant connect,resource to 用户名; grant unlimited tablespace to用户名; grant create database link to用户名; grant select any sequence,create materialized view to用户名; 经过以上操作,我们就可以使用用户名/密码登录指定的实例,创

建我们自己的表了续: 创建临时表空间: create temporary tablespace test_temp tempfile 'F:\app\think\oradata\orcl\test_temp01.dbf' size 32m autoextend on next 32m maxsize 2048m extent management local; 创建表空间: create tablespace test_data logging datafile 'F:\app\think\oradata\orcl\test_data01.dbf' size 32m autoextend on next 32m maxsize 2048m extent management local; 创建用户: create user jack identified by jack default tablespace test_data temporary tablespace test_temp; 为用户赋予权限: GRANT create any table TO jack; GRANT resource,dba TO jack; GRANT select any table TO jack; 第一个是授予所有table有create权限, 第二个就是赋予DBA的权限,这才是最重要的,其实只要第二就可以了. 第三是授予所有table有select权限. 四:删除用户表空间的步骤: Alter tablespace 表空间名称 offline;

Oracle数据库startup和shutdown方式

Oracle数据库startup和shutdown方式 昨天晚上,回去好好整理了下关于"Oracle数据库提供了几种不同数据库启动和关闭方 式",然后,自己就回去就写了个示例. 其中,就出现了1个问题: ORA-12528: TNS:listener: all appropriate instances are blocking new connections 于是到网上就大量的查阅资料,哈哈,好不错,解决方法找到了.其中红色的就是主要解决方法.下面就把我整理的东西给共享下. 一:注意事项 要启动和关闭数据库,必须要以具有Oracle 管理员权限用户登陆,通常也就是以具有SYSDBA 权限用户登陆。一般我们常用INTERNAL用户来启动和关闭数据库(INTERNAL用户实际上是SYS用户以SYSDBA连接同义词)。Oracle数据库新版本将逐步淘汰INTERNAL这个内部用户,所以我们最还是设置DBA用户具有SYSDBA权限。 二:启动一个数据库需要三个步骤 1、创建一个Oracle实例(非安装阶段) 2、由实例安装数据库(安装阶段) 3、打开数据库(打开阶段) 三:Startup(启动数据库命令) 1、STARTUP NOMOUNT NONOUNT选项仅仅创建一个Oracle实例。读取init.ora初始化参数文件、启动后台进程、初始化系统全局区(SGA)。Init.ora文件定义了实例配置,包括内存结构大小和启动后台进程数量和类型等。实例名根据Oracle_SID设置,不一定要与打开数据库名称相同。当实例打开后,系统将显示一个SGA内存结构和大小列表,如下所示: SQL> startup nomount ORACLE 例程已经启动。 Total System Global Area 35431692 bytes Fixed Size 70924 bytes Variable Size 18505728 bytes Database Buffers 16777216 bytesu Redo Buffers 77824 bytes 2、STARTUP MOUNT 该命令创建实例并且安装数据库,但没有打开数据库。Oracle系统读取控制文件中关于数据文件和重作日志文件内容,但并不打开该文件。这种打开方式常在数据库维护操作中使用,如对数据文件更名、改变重作日志以及打开归档方式等。在这种打开方式下,除了可以看到SGA系统列表以外,系统还会给出"数据库装载完毕"提示。 3、STARTUP

Oracle数据库的启动与关闭

以下资料来自Oracle数据库精讲与疑难解析,仅供学习 一、Oracle数据库的启动 Oracle数据库的启动要经历3个阶段。 阶段一:启动实例 (Start An Instance)--nomount 阶段二:装载数据库 (Mount The Database)--mount 阶段三:打开数据库 (Open The Database)--open 1.启动实例 ①读取参数文件(Initialization Parameter File, PFILE 或者 Server Parameter Files, SPFILE) ②Oracle根据参数文件中的参数,分配系统全局区(System Global Area, SGA) ③启动后台进程(DBWR: 数据库写入进程,LGWR:日志写入进程,CKPT:检查点进程,SMON: 系统监控进程,PMON:进程监控进程,ARCH归档进程等)。 这些内存和后台进程组合起来组成实例(Oracle Instance)。 参数文件(PFILE或者SPFILE)还指定了控制文件(Control File)的位置。 2.装载数据库 打开控制文件(Control File),从控制文件中获得数据文件(Data File)和联机日志文件(Redo Log File)的名字和位置。这时候,Oracle已经把实例和数据库关联起来。对于普通用户,数据库 还是不可访问。 3.打开数据库 Oracle打开数据文件 (Data Files) 和联机日志文件 (Redo Log File) 。这时候,数据库可以使用。 普通可以登录数据库,对数据库进行操作。 4.分步启动Oracle STARTUP NOMOUNT; ALTER DATABASE MOUNT; ALTER DATABASE OPEN; 5.直接启动Oracle STARTUP (相当于上面三个过程依次进行) 6.使用特定初始化参数文件 (Initialization Parameter File, FILE) 启动数据库 STARTUP PFILE='C: \oracle\product\10.2.0\db_1\dbs\PFILEORCL.ORA'; 7.把数据库启动到限制模式(RESTRICT) 在限制模式下,只有CREATE SESSION 和RESTRICTED SESSION权限的用户可以访问数据库。 ①如果数据库是关闭的 STARTUP RESTRICT; ②如果数据库是开启的 ALTER SYSTEM enable restricted session; 8.以只读模式(Read Only)打开数据库 ①如果数据库是关闭的 STARTUP open read only; ②如果数据库是开启的 ALTER DATABASE OPEN read only; 在直读模式下,数据文件和日志文件都禁止写操作。整个数据库是只读的。 但是允许数据库恢复(Database Recovery)及其他不会产生回滚的操作。 9.把数据库启动到回复模式 (RECOVER) STARTUP OPEN RECOVER; 10.重启数据库(RESET) STARTUP FORCE

LINUX安装ORACLE步骤注意事项

Linux AS5/4安装Oracle10g常见问题 环境: Operating System:Windows2003Enterprise Edition Virtual Machine:VMware6.0 Linux:Redhat Linux AS5 注:由于Redhat Linux AS5不是Oracle官方文档中的支持版本,所以下面的检查配置项均参照Oracle对AS4的要求进行设置。 一、检查硬件 查看内存和交换空间以及磁盘大小 命令:#grep MemTotal/proc/meminfo #grep SwapTotal/proc/meminfo #df-h #df-k/tmp 要求:所需最小内存为256MB,而所需最小交换空间为512M。对于内存小于或等于2GB 的系统,交换空间应为内存的两倍;对于内存大于2GB的系统,交换空间应为内存的一到两倍。安装Oracle10g软件需要2.5GB的可用磁盘空间,而数据库则另需1.2GB的可用磁盘空间。/tmp目录至少需要400MB的可用空间。 二、验证Linux安装

1.检查内核版本:#uname-r 所需版本:2.6.9-5.EL(为官方RHEL4.0的要求)2.检查所需软件包:#rpm-q package-name 所需包及其版本: binutis-2.15.92.0.2-13.EL4 compat-db-4.1.25-9 compat-libstdc++-296-2.96-132.7.2 control-center-2.8.0-12 gcc-3.4.3-22.1.EL4 gcc-c++-3.4.3-22.1.EL44 glibc-2.3.4-2.9 glibc-common-2.3.4-2.9 gnome-libs-1.4.1.2.90-44.1 libstdc++-3.4.3-22.1 libstdc++-devel-3.4.3-22.1 make-3.80-5 pdksh-5.2.14-30 sysstat-5.0.5-1 xscreensaver-4.18-5.rhel4.2 setarch-1.6-1

oracle数据库基础教程期末考试简答与实践小抄范文

(1)第十章模式对象重点 数据是描述事物的符号,是数据库中存储的基本对象。在计算机中,用记录的形式来描述数据。数据与数据的解释即数据的语义是紧密结合的。数据库是指按一定的数据模型组织、描述和存储的数据的集合。数据库管理系统是位于操作系统与用户之间的一层数据管理软件。数据库系统是指数据库、数据库管理系统与计算机系统的结合。通常,在不引起混淆的情况下将数据库系统简称为数据库。 (2)数据库管理系统的主要功能包括:数据定义、数据操纵、数据库运行与控制、数据库建立与维护、数据字典定义以及数据通信等。数据库管理系统的内部分多个层次,由应用层、语言定义及其翻译处理层、数据存取层、数据存储层、操作系统以及数据库组成。 (3)数据库系统由数据库、操作系统、数据库管理系统、开发工具、应用系统、数据库管理员以及数据库用户组成。 (4)概念模型是用简单、清晰、用户易于理解的概念来描述现实世界具体事物及事物之间的关系。它是现实世界到信息世界的抽象,是数据库设计人员进行数据库设计的工具,与具体的数据库管理系统无关。组织数据模型是从数据组织方式的角度来描述信息,它决定了数据在数据库中的组织结构。 (5)关系数据库的完整性约束包括三类:实体完整性、参照完整性和用户定义完整性。实体完整性:是指关系中必须定义主键,以惟一的确定一个元组。主键由一个或多个属性构成,其取值惟一且不能为空(NULL)。参照完整性:在关系模型中,通过外键来表示表之间的联系。参照完整性是指一个表中的外键的取值必须是参照表中主键存在的值或为空(NULL)。例如,学生信息表中“班号”属性为外键,其取值必须是班级信息表中“班号”属性的某一个值或为空。用户定义完整性:是指用户根据特定应用情况,设定一些约束,反映某一具体应用所涉及的数据必须满足的语义要求。例如,“性别”属性的域为“男、女”。 (6) (7) Oracle数据库体系结构由物理存储结构、逻辑存储结构和实例组成。其中物理存储结构描述了操作系统层次数据的存储与管理,包括数据文件、日志文件、重做日志文件等组成。逻辑结构描述了数据库内部数据的组织与管理,由表空间、段、区、块组成。实例是数据库运行的软件结构,由内存结构和后台进程组成。数据库运行过程中,用户的操作在内存区中进行,最终通过后台进行转化为对数据库的操作。

Linux下Oracle10g创建数据库

Linux下Oracle10g创建数据库流程 通过Redhat as4 Linux 下的两种途径来创建数据库,详细描述各个步骤的来龙去脉,让理清创建一个数据库的整体流程。 前提:用户已经成功的安装ORACLE数据库服务器到对应的LINUX平台,下面的动作都是基于ORACLE+REDHAT AS4的基础上完成的。 在linux平台创建数据库的方法有两种:1.通过oracle数据库建库脚本直接到终端下运行对应的脚本即可,前提是这些脚本报保证它的正确性;2.通过linux平台下提供的图形界面来创建数据库,这种方式用的最多也是最简便的一种 1.图形界面安装oracle数据库 登陆到linux操作系统界面下,切换到root用户,执行命令xhost,具体如下: xhost +ip/hostname ---主要是让本机终端能够访问x server图形界面服务 切换用户到oracle,执行env查看DISPLAY环境变量的值,通常DISPLAY=:0.0,这时需要把对应的ip/hostname设置到DISPLAY中,执行命令: export DISPLAY=ip:0.0 如果一切正常的话,那么这时候我们直接进入oracle用户下执行dbca命令。 进入安装界面

直接点击上图的下一步。

在上图 Database Templates 页面上,选择创建数据库使用的数据库模板类型。您可以单击 Show Details 查看每种数据库类型的配置。选择适合于您的数据库将支持的工作负载的类型的模板。如果您不确定,选择默认的 General Purpose(一般用途)模板。直接点击上图的下一步。

Linux-Oracle11g-r2安装

虚拟机安装环境准备 环境准备是Linux安装的关键,在安装一个Oracle虚拟机,虚拟机的配置如下: 注意: ●请将Hard Disk的空间至少保留40G; ●请在系统Linux安装完成后再添加多个硬盘,这样就可以设置多个裸设备(raw devices),用于ASM存储数据文件。 ●建议安装一个英文版的Linux系统,避免中文乱码的问题;本例中安装的是 rhel-server-5.4-i386-dvd.iso(32位)安装包。 一 . Oracle 11R2硬件环境要求 ●至少1G以上的内存; [root@localhost ~]# grep MemTotal /proc/meminfo

swap的大小规则: 从上面的规则可以得出,本机的SWAP必须大于2G [root@localhost ~]# free 可以看出,本机的Swap为4G,满足Oracle 11g r2的安装要求。 ************************************************* *如果swap的空间不足则需采用如下方法* [root@localhost ~]# fdisk -l [root@localhost ~]# mkswap /dev/sda3 Setting up swapspace version 1, size = 4194852 kB [root@localhost ~]# swapon /dev/sda3

[root@localhost ~]# free ************************************************* 二.Linux Kernel要求 在安装Oracle之前,RedHat Linux需安装一些必要的组件。在安装组建之前先确认操作系统的版本。 [root@localhost ~]# cat /etc/redhat-release Red Hat Enterprise Linux Server release 5.4 (Tikanga) [root@localhost ~]# lsb_release -a LSB Version: :core-3.1-ia32:core-3.1-noarch:graphics-3.1-ia32:graphics-3.1-noarch Distributor ID: RedHatEnterpriseServer Description: Red Hat Enterprise Linux Server release 5.4 (Tikanga) Release: 5.4 Codename: Tikanga [root@localhost ~]# uname -a Linux localhost.localdomain 2.6.18-164.el5 #1 SMP Tue Aug 18 15:51:54 EDT 2009 i686 i686 i386 GNU/Linux 必须确认如下组件已经安装

Oracle数据库管理与应用实例教程(刘志成)课后习题及答案

【填空题】 1.默认情况OEM的URL地址是https://sd04:1158/em(其中sd04为机器名) 2.Oracle9i发布于2001,i代表Internet,11G发布于2007,g代表grid(网格) 3.在oracle内存结构中,保存正在执行或可能执行的代码的区是代码区 4.在oracle进程结构中,用于实现进程监控功能的进程是PMON 1.Oracle数据库系统的物理存储结构主要由3类文件组成,分别为数据文件、重做日志文件、控制文件。 2.一个表空间物理上对应一个或多数据文件 3.在oracle的逻辑存储结构中,根据存储数据的类型,可以将段分成为数据段、索引段、回滚段、LOB段和临时段。 1.在设计表时,对于邮政编码最适合的数据类型是CHAR 2.在alter table语句中,如果要删除列,可以通过指定DROP COLUMN关键字来实现。 3.如果需要在表中插入一批已经存在的数据,可以在insert语句中使用SELECT语句。 4创建一个update语句来修改goods表中的数据,并且把每一行的t-id值都改成15,应该使用的SQL语句是UPDATE SCOTT.Goods SET t_ID=’15’ 5.使用DESC命令可以显示表的结构信息 6.两个表的主关键字和外关键字的数据应该对应一致,这是属于引用完整性,通常可以通过主键和外键来实现。 7.UNIQUE约束通过确保在列中不输入重复值保证一列或多列的实体完整性。 1.在select语句中选择满足条件的记录使用where关键字,分组之后进行选择使用having 关键字 2.用来返回特定字段中所有值得总和的聚合函数是SUM 3.编写查询语句时,使用%通配符可以匹配多个字符。 18.集合运算符UNION实现集合的并运算,操作符INTERSECT实现了对集合的交运算,而MINUS则实现了减运算 19.如果要定义只读的视图,可以在创建视图时使用READ ONLY关键字 20.删除视图的PL\SQL语句是DROP VIEW [用户方案.]视图名 21.在使用CREATE INDEX创建索引时,使用BITMAP关键字可以创建位图索引 22.聚集(Cluster)是存储表数据的可选择的方法。一个聚集是一组表,将具有同一公共列值的行存储在一起,并且它们经常一起使用,表中相关的列称为聚集键 23.在为表中某个列定义PRIMARY KEY约束PK_ID后,则系统默认创建的索引名为PK_ID 24.如果表中某列的基数比较低,则应该在该列上创建反向索引 25.如果要获知索引的使用情况,可以通过查询DBA_INDEXES视图,而要获知索引的当前状态,可以查询INDEX_STATS视图。 26. 在Oracle的PL/SQL程序中,除了可以使用Oracle规定的数据类型外,还可以使用%TYPE 类型的变量,由系统根据检索的数据表列的数据类型决定该变量的类型,也可以使用%ROWTYPE 类型的变量用来一次存储从数据表中检索的一行数据。 27. SYSDATE函数可以获得当前系统的日期,SUBSTR(s,start,len)函数可以实现从指定的字符串中取指定长度的字符串。 28. 用来变异存储过程的PL/SQL语句是ALTER PROCEDURE,CREATE FUNCTION语句可以用来创建函数。

linux下安装oracle10g的艰难之旅

2005-10-17 09:10作者:田逸出处:chinaitlab责任编辑:罗可龙 在linux下安装oracle是一件令人生畏的事情,其复杂程度远远超过安装linux操作系统本身。如果能够进行成功的安装oracle,那么同时也就顺便掌握了linux一些技术。本文介绍在redhat linux 下安装oracle 10g 的方法。在这里说明一下,Oracle 10g的g是grid 的缩写,意为网格,目前较为前沿的网络计算技术。 Oracle 10g 对软硬件的要求都非常的高,所以要玩转的话的花不少银子。首先来看看它对硬件的要求:内存512兆(建议1G),cpu 主频2.0G以上,硬盘转速7200转以上(建议使用scsi硬盘),依此条件,我看买台服务器才行。其次是软件要求:在oracle 官方的文档里,对于x86系列支持的操作系统只有3种(radhat ES/AS (x86),redhat ES/AS 3(x86),(x86) ),如果只有redhat 9也是可以安装的,不过要麻烦一点点。当然oracle 10g需要更多的软件模块才能进行安装,这些软件模块我将在后面逐一说明。在本例中,使用RedHat ES 3(x86)作为操作平台,并且安装了xwindow。 接下来,我们检查是否符合oracle 10g 的安装要求,以表格的形式列出。首先是硬件情况。以root 登录系统,并且启动x-window.如果用下表命令输出的值大于或等于建议值,请 检查项目命令/方法建议值 内存 #grep MemTotal /proc/meminfo 512MB 交换分区 #grep SwapTotal /proc/meminfo 1GB /tmp目录空闲区 #df –k /tmp 400MB 硬盘空闲空间 #df -k 4GB 继续往下,检查软件需求。对redhat ES 3(x86),需要如下的软件包: · Gnu gcc package, gcc-3.2.3-2 or 更高 下面的包也必须被安装:· · · openmotif-2.2.2-16· · compat-gcc-c++ compat-libstdc++ compat-libstdc++ 为了保证系统满足需求,执行下面的步骤检查安装的linux版本和安装的套件。 检查项目命令/方法建议值 Linux 版本 #cat /etc/issue ES 3 已安装的包 #rpm -q package_name 安装所需包(上表所列) 到这里我们已经全面的检查了安装oracle 10g所要求的软硬件环境,接着我们就要为安装创建组和用户。 下面的组和用户必须存在 The oinstall group (the oracle inventory group)

Linux下oracle建库

ORACLE 安装部分说明
一、通过 dbca 创建数据库
Oracle DBCA 总共提供四种操作模式,进行数据库管理工作,分别是: 1、 创建数据库( Create a database ) .] 2、 配置数据库各项设定( Configuration database options in a database ) . 3、 删除数据库( Delete a database ) . 4、 模板管理( Manager Templates) .

这里有 4 个选项, Data Warehousing : 这个模版是用来创建数据仓库环境的( DDS ) 。 Transacti on Processing : 这个模版是用来创建联机事务处理环境的 (OLTP)。 General Purpose: 这个模版创建的数据拥有 DDS 和 OLTP 特性。当然也很巨大! (小硬盘 8 0G 以下者慎用! ) New Database:以自定义方式创建数据库。

设置全域数据库名称(Global Database Name)和 SID。 所谓全域数据库名称目的是希望能够在网络上唯一识别每个 oracle 数据库,格式通常如 下:[Oracle SID 名称].[数据库主机所在网域名称] 我们公司的域名称:https://www.sodocs.net/doc/24611245.html,,数据库 SID 设定 oracleDB。那么全域数据库名称就可 以设定为:https://www.sodocs.net/doc/24611245.html, 下一步选择:No,don’t register the database。

Oracle 11gR2 for Linux安装图解

Oracle 11gR2 for Linux安装图解 系统环境:CentOS Release 6.3(Final) Kernel Linux 2.6.32-279.el6.i686 GNOME 2.28.2 安装要求: 硬件:RAM大小至少为1GB,swap大小至少为2GB,/tmp分区至少1GB(推荐8GB) 软件:各发行版本的Linux系统发行版本需求(x86) ?Asianux 2.0 ?Asianux 3.0 ?Oracle Enterprise Linux 4.0 Update 7 or later ?Oracle Enterprise Linux 5.0 ?Red Hat Enterprise Linux 4.0 Update 7 or later ?Red Hat Enterprise Linux 5.0 ?SUSE Linux Enterprise Server 10.0 ?SUSE Linux Enterprise Server 11.0 安装时需要很多其他的软件的支持,以及修改内核参数,这些都可以放在后面来做,Oracle的安装程序会在正式安装前将软件和硬件环境进行检查,将不满足的列出来,在这个时候我们就可以对照着不满足的软件列表安装对应软件,内核参数的修改也只需要运行一个Oracle提供的shell脚本就可以满足需求。 PS:gcc这个软件包是必须提前装好的,没有这个是不行的。 1、将Oracle for Linux的安装文件拷贝到某个目录下,本例使用/tmp文件夹 2、使用root用户登录系统,并创建四个组和一个用户,命令如下: # groupadd oracle # groupaddoper # groupadddba # groupaddoinstall #useradd–g oinstall–G oracle,oper,dba oracle 这样就创建好了一个用户,不过现在没有密码,没有密码是不能登录系统的,使用如下命令修改密码 #passwd oracle 根据屏幕提示修改oracle用户的密码就行了 3、在根目录下创建文件夹,并修改该文件夹的所有者和权限,命令如下: #mkdir–p /oracle/app/ #chown–R oracle:oinstall /oracle/app/ #chown–R oracle:oinstall /oracle/ #chmod–R 775 /oracle/app/ PS:这里的oracle文件夹名字可以自定义,app文件夹名字不能修改 4、修改用户的环境变量配置文件,在该文件末尾添加如下信息 umask 022 export ORACLE_BASE=/oracle/app/ export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/db_1 export ORACLE_SID=orcl export PATH=$PATH:$ORACLE_HOME/bin 这里ORACLE_SID的名称可以自定义 5、注销root,使用oracle用户登录系统(系统语言修改成英文,不然安装过程中会有乱码) 在桌面环境下打开一个终端窗口,运行/tmp/database/runInstaller文件,成功运行后如图:

Oracle11g数据库基础教程-参考答案资料

第1章Oracle 11g数据库安装与配置 1.简答题 (1) 企业版数据库服务器包含所有的数据库组件,主要针对高端的应用环境,适用于安全性和性能要求较高的联机事务处理(OLTP)、查询密集型的数据仓库和要求较高的Internet应用程序:标准版数据库服务器提供大部分核心的数据库功能和特性,适合于工作组或部门级的应用程序:个人版数据库服务器只提供基本数据库管理功能和特性,适合单用户的开发环境,为用户提供开发测试平台。 (2) 常用数据库类型包括事务处理类、数据仓库类以通用类型。其中事务处理类型主要针对 具有大量并发用户连接,并且用户主要执行简单事务处理的应用环境。事务处理数据库的典型应用有银行系统数据库、Internet电子商务数据库、证券交易系统数据库等。对于需要较 高的可用性和事务处理性能、存在大量用户并行访问相同数据以及需要较高恢复性能的数据 库环境,事务处理类型的配置可以提供最佳性能;数据仓库类型的数据库主要针对有大量的 对某个主题进行复杂查询的应用环境。数据仓库的典型应用有客户订单研究、支持呼叫、销售预测、采购模式以及其他战略性业务问题的历史数据研究。对于需要对大量数据进行快速 访问,以及复杂查询的数据库环境,数据仓库类型配置是最佳选择;通用类型配置的数据库是事务处理数据库与数据仓库配置的折衷方案。既可以支持大量并发用户的事务处理,又可以快速对大量历史数据进行复杂的数据扫描和处理。 (3) 数据库名可以由字母、数字、下划线(_)、#和美元符号($)组成,且必须以字母开头,长度不超过30个字符。在单机环境中,可以不设置域名,域名长度不能超过128个字符。Oracle服务标识符(SID)是一个Oracle实例的唯一名称标识,长度不能超过12个字符。(4) OracleServiceORCL:数据库服务(数据库实例),是Oracle核心服务,是数据库启 动的基础,只有该服务启动,Oracle数据库才能正常启动。(必须启动) OracleOraDb11g_home1TNSListener:监听器服务,该服务只有在远程访问数据库时 才需要(无论远程计算机还是本地计算机,凡是通过Oracle Net网络协议连接数据 库都属于远程访问)。(必须启动) OracleOraDb11g_home1ConfigurationManager:配置Oracle启动时的参数的服务。(非必须启动) OracleOraDb11g_home1ClrAgent:提供对.NET支持的Oracle数据库扩展服务。(非必须启动) OracleJobSchedulerORCL:数据库作业调度服务。(非必须启动) OracleDBConsoleorcl:Oracle控制台服务,即企业管理器服务。只有该服务启动了, 才可以使用Web方式的企业管理器管理数据库。(非必须启动) OracleVssWriterORCL:是Oracle对VSS提供支持的服务。(非必须启动) OracleMTSRecoveryService:是允许数据库充当一个微软事务服务器、COM/COM+对象和分布式环境下的事务资源管理器的服务。

服务器(ORACLE)启动与关闭

服务器(O R A C L E)启动 与关闭

一、重启服务器顺序: 关闭数据库(toppord/toptest)→重启设备(reboot)→开启数据 库(只需要开启toptest,topprod已设置自动启用) 二、Linux下启动 oracle 数据库 -- ssh连接上数据库主机,正式区DB(172.16.13.228) / 测试区DB(172.16.13.224) -- su – root/tiptop -- su – oracle -- echo $ORACLE_SID #检查当前实例 -- export ORACLE_SID=topprod(正式区)/ export ORACLE_SID=topprod(测试区) # 设置实例 -- lsnrctl start -- sqlplus / as sysdba -- startup 至此,已将数据库开启到OPEN状态。 三、Linux下关闭ORACLE数据库 -- ssh连接上正式区DB(172.16.13.228) / 测试区DB(172.16.13.224) -- su - root/root #切换至ROOT管理员用户 -- su – oracle #切换至oracle用户(oracle用户密码原为oracle,但不正 确) -- echo $ORACLE_SID #检查当前实例 -- export ORACLE_SID=topprod(正式区)/ export ORACLE_SID=topprod(测试区) #设置实例

-- sqlplus / as sysdba #以数据库管理员身份进入数据库 -- shutdown immediate #关闭数据库 -- su – root/root #切换回系统ROOT用户 -- reboot #重启服务器 检查服务器资源命令 AP:top DB:topas 备注: oracle数据库几种关闭方式: 1、shutdown normal 正常方式关闭数据库 关闭时间较长,等待事务完成才会关闭数据库。 2、shutdown immediate 立即方式关闭数据库(一般使用该方式) 会结束事务,将未提交的事务全部回滚。在SVRMGRL中执行shutdown immediate,数据库并不立即关闭,而是在Oracle执行某些清除工作后才关闭(终止会话、释放会话资源),当使用shutdown不能关闭数据库时,shutdown immediate可以完成数据库关闭的操作。 3、shutdown abort 直接关闭数据库 会造成数据库的不一致,再次启动数据库会自动执行恢复,会造成等待时间较长。正在访问数据库的会话会被突然终止,如果数据库中有大量操作正在执行,这时执行shutdown abort后,重新启动数据库需要很长时间。

相关主题