2004年10月12日

 

1.       Server Information:

Name: iasdemo.areschina.com

IP Add: 218.107.252.13

User: root/aplusoft  oracle/oracle

2.       System software requirement

a)         kernel and glibc version are: 2.4.21-15.ELsmp and glibc-2.3.2-95.3

b)        Required software package(same or higher)

l         gcc-3.2.3-20

l         setarch-1.3-1

l         pdksh-5.2.14

l         openmotif21-2.1.30-8

l         gnome-libs-1.4.1.2.90-34.1

l         compat-glibc-7.x-2.2.4.32.5

l         compat-gcc-7.3-2.96.122

l         compat-libstdc++-7.3-2.96.122

l         compat-libstdc++-devel-7.3-2.96.122

l         compat-gcc-c++-7.3-2.96.122

l         sysstat-4.0.7

To determine the package is installed, use the following command

$ rpm –qa|grep package-name

c)        Check whether the following symbolic links exist:

# cd /usr/bin

# ls -l gcc g++

gcc -> gcc296

g++ -> g++296

l         If not, create them as follows:

a)         Create a backup of the existing files:

# mv /usr/bin/gcc /usr/bin/gcc.backup

# mv /usr/bin/g++ /usr/bin/g++.backup

b)        Create the symbolic links:

# ln -s /usr/bin/gcc296 /usr/bin/gcc

# ln -s /usr/bin/g++296 /usr/bin/g++

d)        If the hugemem kernel is used, set the architecture using following command:

# setarch i386

e)         Apply patch 3006854.

This patch creates the /etc/libcwait.so file and appends the following line to the /etc/ld.so.preload file: /etc/libcwait.so

3.       Configuring the Kernel Parameters on Linux

Parameter

Value

File

Semmsl

256

/proc/sys/kernel/sem

semmns1

32000

Semopm

100

Semmni

142

Shmall

2097152

/proc/sys/kernel/shmall

Shmmax

2147483648

/proc/sys/kernel/shmmax

Shmmni

142

/proc/sys/kernel/shmmni

Msgmax

8192

/proc/sys/kernel/msgmax

Msgmnb

65535

/proc/sys/kernel/msgmnb

Msgmni

2878

/proc/sys/kernel/msgmni

file-max

131072

/proc/sys/fs/file-max

ip_local_port_range

1024 65000

/proc/sys/net/ipv4/ip_local_port_range

 

a)         Use the followed command to check the current value

l         # /sbin/sysctl -a | grep parameters-name

b)        To modify the parameter values, edit the /etc/sysctl.conf file and add or edit lines similar to the following :

kernel.shmall = 2097152

kernel.shmmax = 2147483648

kernel.shmmni = 4096

# semaphores: semmsl, semmns, semopm, semmni

kernel.sem = 256 32000 100 142

fs.file-max = 131072

net.ipv4.ip_local_port_range = 1024 65000

kernel.msgmni = 2878

kernel.msgmax = 8192

kernel.msgmnb = 65535

c)        to enable the kernel parameter, reboot or use the follow command

l         /sbin/sysctl -p

 

4.       set shell limits for ias user

a)         Add the following lines to /etc/security/limits.conf file where -> represents the tab character:

* -> -> soft -> nproc -> -> 16384

* -> -> hard -> nproc -> -> 16384

* -> -> soft -> nofile -> -> 65535

* -> -> hard -> nofile -> -> 65535

b)        Add the following line to the /etc/pam.d/login file, if it does not already exist:

session required /lib/security/pam_limits.so

c)        Add the follow line in user’s profile

ulimit -u 16384 -n 16384

 

5.       Create user and groups

a)         Create a group ias for inventory directory

a)         # /usr/sbin/groupadd ias

b)        Create a two groups dba, oper for database administrator

a)         # /usr/sbin/groupadd dba

b)        # /usr/sbin/groupadd dba

c)        Create user ias for operation system user

a)         # /usr/sbin/useradd -g ias -G dba,oper ias

b)        # passwd ias ias100

c)        # chmod –R 777 /etc/oraInventory

 

6.       Check the environment variables

a)         In the .bash_profile file, add the follow lines: 

DISPLAY=192.1681.2:0.0

Export DISPLAY

TMP=/tmp

TMPDIR=/tmp

Export TMP, TMPDIR

 

7.       Create target directory for iAS 10g

# cd /d01

# mkdir ias

# chown oracle ias

# chgrp oracle ias

 

8.       start Installing OracleAS Infrastructure 10g

a)         cd /home/oracle/stage/ias10g/Disk1

b)        ./runInstaller

c)        complete the first several steps to begin installer

d)        [Welcome]: next

e)         [Inventory]:/etc/oraInventory

f)         [UNIX Group]: oracle

g)        [Root job]: run /etc/oraInventory/orainstRoot.sh as root

h)        [Specify file location]

Path: /home/oracle/stage/ias10g/Disk1/stage/products.jar

Name: infra

Path: /d01/ias/infra

i)          [Select a Product to install]: OracleAS Infrastructure 10g

[Languages]: English, Simplified Chinese, Traditional Chinese

[Select Installation Type]: Identity Management and OracleAS Metadata Repository

j)          Verify that your computer meets all the requirements. Click Next.

k)        [Suggested Namespace]: dc=areschina, dc=com

l)          [Database Admin&Operator Group (OSDBA & OSOPER)]: oracle

m)      [Database Identification]

[Global Database Name]: asdb.areschina.com

[SID]: asdb

n)        [Set SYS and SYSTEM Passwords]: system and system

o)        [Database File Location]: /d01/ias/infra/oradata

p)        [Database Character Set]: UTF8

q)        [Instance Name]: infra  [ias_admin password]: ias100

r)         Begin install:

Log files: /etc/oraInventory/logs/installActions2004-10-10_03-22-15PM.log

s)         Atfer install, test the installation use the follow URL:

http://iasdemo.areschina.com:7777   Oracle HTTP Server

http://iasdemo.areschina.com:1810   Oracle Enterprise Manager server

username : ias_admin  password : ias100

9.       Start installation for Middle ties

a)         cd /home/oracle/stage/ias10g/Disk1

b)        ./runInstaller

c)        complete the first several steps to begin installer

d)        [Welcome]: next

e)         [Specify file location]

Path: /home/oracle/stage/ias10g/Disk1/stage/products.jar

Name: mid

Path: /d01/ias/mid

f)         [Select a Product to install]: Oracle Application Server 10g

[Languages]: English, Simplified Chinese, Traditional Chinese

[Select Installation Type]: Bussiness Intelligence and Forms

g)        Verify that your computer meets all the requirements. Click Next.

h)        Select all components

i)          [Register with the Oracle Internet Directory]

Host: iasdemo.areschina.com

Port: 3060

j)          [Specify Login for Oracle Internet Directory]

Username: cn=orcladmin  Password: ias100

k)        [Select OracleAS Metadata Repository]: Database connection string:

Iasdemo.areschina.com:1521:asdb.areschina.com:asdb.areschina.com

l)          [Instance Name]: mid  [ias_admin password]: ias100

m)      Atfer install, test the installation use the follow URL:

http://iasdemo.areschina.com:7778   Oracle HTTP Server

http://iasdemo.areschina.com:1811   Oracle Enterprise Manager server

Username : ias_admin  password : ias100

10.   Start and stop scripts for Infrastructure and Middle ties

a)         Start Infrastructure

a. Set the ORACLE_HOME environment variable to the Infrastructure Oracle home.

b. Set the ORACLE_SID environment variable to the Metadata Repository SID (default is asdb).

c. Start the Net Listener:

d. Start the Metadata Repository instance:

e. Start components:

f.  Start Application Server Control:

 

ORACLE_HOME=/d01/ias/infra

export ORACLE_HOME

PATH=$ORACLE_HOME/jdk/bin:$ORACLE_HOME/bin:$ORACLE_HOME/dcm/bin:$PATH

export PATH

ORACLE_SID=asdb

export ORACLE_SID

LD_LIBRARY_PATH=$ORACLE_HOME/lib

export LD_LIBRARY_PATH

ORACLE_HOME/bin/lsnrctl start

ORACLE_HOME/bin/sqlplus /nolog

SQL> connect SYS as SYSDBA

SQL> startup

SQL> quit

ORACLE_HOME/opmn/bin/opmnctl startall

ORACLE_HOME/bin/emctl start iasconsole

 

b)        Start Middle tie

a. If the middle-tier instance uses Infrastructure services, such as Identity Management or a Metadata Repository, make sure they are started.

b. Start components:

c. Start the Application Server Control:

ORACLE_HOME/opmn/bin/opmnctl startall

ORACLE_HOME/bin/emctl start iasconsole

 

c)        Stop Middle tie

a. Stop Application Server Control:

b. Stop components:

ORACLE_HOME/bin/emctl stop iasconsole

ORACLE_HOME/opmn/bin/opmnctl stopall

 

d)        Stop Infrastructure

a. Stop Application Server Control:

b. Stop components:

c. Set the ORACLE_HOME environment variable to the Infrastructure Oracle home.

d. Set the ORACLE_SID environment variable is set to the Metadata Repository SID (default is asdb).

e. Stop the Metadata Repository instance:

f.  Stop the Net Listener:

ORACLE_HOME/bin/emctl stop iasconsole

ORACLE_HOME/opmn/bin/opmnctl stopall

ORACLE_HOME/bin/sqlplus /nolog

SQL> connect SYS as SYSDBA

SQL> shutdown

SQL> quit

ORACLE_HOME/bin/lsnrctl stop

 

e)          

f)         Aa

g)        Aa

h)         

11.   aa

12.   aa

13.   aa

14.   Oracle official installation example:

http://www.oracle.com/technology/obe/obe_as_10g/install/index.html

 

1.使用急救盘组进行维护

  急救盘组(也称为boot/root盘组),是系统管理员必不可少的工具。用它可以独立地启动和运行一个完整的Linux系统。实际 上,急救盘组中的第2张盘上就有一个完整的Linux系统,包括root文件系统;而第1张盘则存放了可启动的内核。

  使用急救盘组维护系统很简单。只需用这两张盘启动系统后,进入急救模式,这时使用的是root账户。为了能访问硬盘上的文件,需要手工安装硬盘文件系统。例如,用下面的命令可在/mnt目录中安装/dev/hda2盘上的ext2fs类型的Linux文件系统:

  # monut -t ext2/dev/hda2/mnt

  注:现在根目录是急救盘上的根目录。为了访问硬盘文件系统中的文件,必须先把它安装到某个目枷隆U庋绻才躺衔募低嘲沧霸?mmt目录下,则硬盘上原来的/etc/passwd文件的路径就是/mnt/etc/passwd

  2、文件系统被破坏时的处理方法

  当文件系统被破坏时,如果使用的是ext2fs类型的文件系统,就可从软盘运e2fsck命令来修正文件系统中被损坏的数据。对于其他类型的文件系统,可以使用相应的fsck命令。 当从软盘上检查文件系统时,最好不要mount安装

  注:文件系统被破坏的常见原因是超级块被损坏,超级块是文件系统的“头部”。它包含文件系统的状态、尺寸和空闲磁盘块等信息。如果损坏了一个文件系统的超级块(例如不小心直接将数据写到了文件系统的超级块分区中),那么系统可能会完全不识别该文件系统,这样也就不能安装它了,即使采用e2fsck命令也不能处理这个问题。

  不过,ext2fs类型的文件系统将超级块的内容进行了备份,并存放于驱动程序的块组(block group)边界。可以用如下的命令通知e2fsck使用超级块的备份

  # e2fsck -b 8193

  是指文件系统所在的分区,-b 8193选项用于显示使用存放在文件系统中的8193块的超级块的备份数据

  3、恢复丢失的文件

  如果不小心删除了重要的文件,那么没有办法直接恢复。但是还可以将相应的文件从急救盘复制到硬盘上。例如,如果删除了文件/bin/login,此时系统无法正常进到登录界面,可以用急救盘组启动系统,将硬盘文件系统安装到/mnt目录下,然后使用下述命令:

  #cp -a /bin/login /mnt/bin

  “-a”选项用于告诉cp在拷贝时保持文件的访问权限。 当然如果被删除的基本文件不在“急救盘组”中,也就不能用这种方法了。如果以前做过系统备份的话,那么也可以用以前的备份来恢复。

  4.函数库破坏时的处理方法

  如果不小心将系统函数库文件破坏了,或者破坏了/lib目录下符号链接,那么将导致依赖这些库的命令无法执行。最简单的解决办法是用急救盘组启动系统,在/mnt目录中安装硬盘文件系统,然后修复/mnt/lib目录下的库。

  5、无法用root账号登录系统

  由于系统管理员的疏忽,或者由于系统受到黑客的入侵,系统管理员可能无法用root帐号登录系统。

  对于第1种情况,可能是系统管理员忘记了rootFrethem/index.htm” target=”_blank” style=’text-decoration: underline;color: #0000FF’>密码,用急救盘组就可以解决问题。

  对于第2种情况,由于很可能是密码被黑客修改了,因此系统管理员无法进入系统,也就是说,Linux系统完全失去了控制,因此应尽快重新获得系统的控制权。在取得 root权限后,还应检查系统被破坏的情况,以防被黑客再次入侵。

  需要做的最主要的工作就是重新设置root的密码,获得Linux操作系统的控制权。首先用急救盘组启动系统,然后将硬盘的文件系统安装到/mnt目录下,编辑/mnt/etc/passwd文件,将其对应于root账户的一行加密口令域置空,如下所示:

  root::00root/rootbin/bash注: 如果系统使用 shadow工具,就需要对文件/etc/shadow进行上述的操作,使root登录系统不需要口令。

  这样,root账户就没有口令了。当重新从硬盘启动Linux系统时,就可以用root账户登录(系统不会要求输入密码)。进

 

入系统后,再用命令passwd设置新的口令。

  6Linux系统不能启动

  一般来说,如果系统管理员不能正常进入系统,就需要考虑使用急救盘组进入急救模式排除系统的故障。但在没有制作急救盘组的情况下,Linux系统不能启动,该怎么办?

  在个人计算机使用 Linux系统时,通常都是LinuxMS Windows 9xMS Windows NT并存的。由于重新安装其他的操作系统,经常会导致原有的Linux不能启动。这主要是因为,这些操作系统默认为计算机中没有其他的操作系统,因而改写了硬盘的主引导记录(MBR),冲掉了LinuxLILO系统引导程序。

  如果有急救盘组,那么很简单,用第一张启动盘启动硬盘的Linux系统,重新运行LILO命令,就可以将LILO系统引导程序写回硬盘的主引导记录。再次开机即可。

  如果没有系统启动盘,怎样恢复硬盘上的Linux呢?在这种情况下,如果知道Linux在硬盘上的确切安装分区,且有loadlin程序,就可以重新返回Linux. loadlin程序是DOS下的程序,运行它可以从DOS下直接启动Linux,快速进入Linux环境。在 Red Hat Linux 6.0光盘的 dosutil/目录下就有这个程序。除此之外,还需要一个 Linux启动内核的映像文件。在 Red Hat linux 6.0光盘的 images/目录下有这个文件——vmlinuz.

  例如,在Windows 98系统下面,进入DOS的单用户模式,然后运行下述的loadlin命令,即可重新进入Linux系统:

  loadlin vmlinuz root=/dev/hda8

  /dev/hda8Linuxroot文件系统所在的硬盘分区位置。命令执行后,就引导Linux系统。用root登录后,运行LILO命令,则重新将LILO装入MBR,回到以前多操作系统并存使用的状态。

 

RMAN(Recovery Manager) 是 DBA 的一个重要工具,用于备份、还原和恢复 oracle 数据库,前一段时间有网友找我要,可惜没时间,趁这两天出差在外没什么事,就写了一下,供初学的朋友参考。本文将介绍 RMAN 的基本操作,更多的信息请参考《 Oracle8i Backup & Recovery Guide 》及 RMAN 手册,或者是 OCP Student Guide M09096 《 Backup and Recovery Workshop 》 Volume 2 ,也可以通过 mailto:gototop@ncn.cn和我联系。 Oracle 自带的例子参考 $ORACLE_HOME/rdbms/demo 目录下的 *.rcv 脚本。

一、 RMAN 简介

RMAN 可以用来备份和恢复数据库文件、归档日志和控制文件,也可以用来执行完全或不完全的数据库恢复。 RMAN 有三种不同的用户接口: COMMAND LINE 方式、 GUI 方式(集成在 OEM 中的备份管理器)、 API 方式(用于集成到第三方的备份软件中)。具有如下特点:

1 )功能类似物理备份,但比物理备份强大 N 倍,从下面的特点可以看到;

2 )可以压缩空块;

3 )可以在块水平上实现增量;

4 )可以把备份的输出打包成备份集,也可以按固定大小分割备份集;

5 )备份与恢复的过程可以自动管理;

6 )可以使用脚本(存在 Recovery catalog 中)

7 )可以做坏块监测

二、相关术语解释

1 ) Backup sets 备份集

备份集顾名思义就是一次备份的集合,它包含本次备份的所有备份片,以 oracle 专有的格式保存。一个备份集根据备份的类型不同,可能构成一个完全备份或增量备份。

2 ) Backup pieces 备份片

一个备份集由若干个备份片组成。每个备份片是一个单独的输出文件。一个备份片的大小是有限制的;如果没有大小的限制, 备份集就只由一个备份片构成。备份片的大小不能大于你的文件系统所支持的文件长度的最大值。

3 ) Image copies 映像备份

映像备份不压缩、不打包、直接 COPY 独立文件(数据文件、归档日志、控制文件),类似操作系统级的文件备份。而且只能 COPY 到磁盘,不能到磁带。可以作为增量备份的 0 级,一般用来备份控制文件。

4 ) Full backup 全备份

全备份是指对数据文件中使用过的数据块进行备份,没有使用过的数据块是不做备份的,也就是说, RMAN 进行备份是进行压缩的。

5 ) Incremental backup 增量备份

增量备份是指备份数据文件中自从上一次同一级别的或更低级别的备份以来被修改过的数据块。与完全备份相同,增量备份也进行压缩。增量备份虽然概念很好,备份也很简单,但恢复起来却是另外一回事,不仅麻烦而且容易出错,所以实际中越来越少使用,到了 Oracle 9i 已经建议不再使用,以后版本会逐渐取消对增量备份的支持。

6 ) Recovery catalog 恢复目录

恢复目录用于记录 RMAN 使用过程中的控制信息,恢复目录应该经常被同步(这在后面会讲到)。尽管我们可以使用 nocatalog 方式来使用 RMAN ,此时控制信息记录在目标数据库的控制文件中,但这样毕竟不安全,因为一旦目标数据库的控制文件损坏就意味着所有的 RMAN 备份失效。同样的道理恢复目录应该建立在另外一个数据库中,在下面的例子中我们称作“目录数据库”。

三、创建恢复目录

1 、在目录数据库中创建恢复目录所用表空间

SQL> create tablespace rmants datafile ‘c:\oracle\oradata\cc\rmants.ora’ size 20M ;

表空间已创建。

2 、在目录数据库中创建 RMAN 用户并授权

SQL> create user rman identified by rman default tablespace rmants temporary tablespace temp quota

unlimited on rmants;

用户已创建

SQL> grant recovery_catalog_owner to rman ;

授权成功。

3 、在目录数据库中创建恢复目录

C:\>rman catalog rman/rman

恢复管理器:版本 8.1.7.0.0 – Production

RMAN-06008 :连接到恢复目录数据库

RMAN-06428 :未安装恢复目录

RMAN>create catalog tablespace rmants;

RMAN-06431 :恢复目录已创建

4 、注册目标数据库到恢复目录

注意哦,这里我的目标数据库使用的服务名称是 rman ,意思为要使用 RMAN 进行备份的数据库,而目录

数据库使用的服务名称是 CC 。

C:\>rman target sys/sys@rman

恢复管理器:版本 8.1.7.0.0 – Production

RMAN-06005 :连接到目标数据库: RMAN (DBID=1303772234)

RMAN>connect catalog rman/rman@cc

RMAN-06008 :连接到恢复目录数据库

RMAN>register database;

RMAN-03022 :正在编译命令: register

RMAN-03023 :正在执行命令: register

RMAN-08006 :注册在恢复目录中的数据库

RMAN-03023 :正在执行命令: full resync

RMAN-08002 :正在启动全部恢复目录的 resync

RMAN-08004 :完成全部 resync

好了,到此为止前面的准备工作都做好了,下面就可以使用 RMAN 来进行备份和恢复了。

四、使用 RMAN

下面通过具体的例子来说明 RMAN 的使用,这里会涉及到除了恢复以外的所有 RMAN 操作,关于使用 RMAN 进行恢复的内容请参考我以前写的另外一篇文章: RMAN 恢复实践。

1 、备份整个数据库

RMAN>run {

2> allocate channel c1 type disk;

3> backup database format ‘e:\dbbackup\2db.dmp’;

4> }

2 、复制数据文件

RMAN>run {

2> allocate channel c1 type disk;

3> copy datafile ‘c:\oracle\oradata\rman\users01.dbf’ to ‘e:\dbbackup\u.dbf’ tag

=u1215;

4> }

3 、查看备份及复制的信息

RMAN>list backup;

RMAN-03022 :正在编译命令: list

备份集列表

关键字 Recid 标记 LV 集合标记集合计数完成时间

——- ———- ———- — ———- ———- ———————-

216 1 417347013 0 417346992 1 26-12 月 -00

备份段列表

关键字 Pc# Cp# 状态完成时间段名

——- — — ———– ———————- ————————

217 1 1 AVAILABLE 26-12 月 -00 E:\DBBACKUP\2DB.DMP

数据文件包括列表

文件名称 LV 类型检查点 SCN 检查点时间

—- ————————————- — —- ———- ————-

1 C:\ORACLE\ORADATA\RMAN\SYSTEM01.DBF 0 Full 33224 26-12 月 -00

2 C:\ORACLE\ORADATA\RMAN\RBS01.DBF 0 Full 33224 26-12 月 -00

3 C:\ORACLE\ORADATA\RMAN\USERS01.DBF 0 Full 33224 26-12 月 -00

4 C:\ORACLE\ORADATA\RMAN\TEMP01.DBF 0 Full 33224 26-12 月 -00

5 C:\ORACLE\ORADATA\RMAN\TOOLS01.DBF 0 Full 33224 26-12 月 -00

6 C:\ORACLE\ORADATA\RMAN\INDX01.DBF 0 Full 33224 26-12 月 -00

RMAN>list copy of datafile ‘c:\oracle\oradata\rman\users01.dbf’;

RMAN-03022 :正在编译命令: list

数据文件备份列表

关键字文件状态完成时间检查点 SCN 检查点时间名称

——- —- – ————— ———- ————— ——

226 3 A 26-12 月 -00 33226 26-12 月 -00 E:\DBBACKUP\U.DBF

4 、在备份是设置相关参数

format — 文件输出格式,

%d–database name,

%s–backup sets sequence number,

%p–backup pieces sequence number

filesperset — 每个备份集中所包括的文件数

更多参数请参考本文开始时列出的书。

RMAN>run {

2> allocate channel c1 type disk;

3> set limit channel c1 kbytes 8000;

4> backup

5> format ‘e:\dbbackup\db_%d_%s_%p.bck’

6> (database filesperset=2 );

7> }

RMAN-03022 :正在编译命令: allocate

RMAN-03023 :正在执行命令: allocate

RMAN-08030 :分配的通道: c1

RMAN-08500 :通道 c1 : sid=9 devtype=DISK

RMAN-03022 :正在编译命令: set limit

RMAN-03023 :正在执行命令: set limit

RMAN-03022 :正在编译命令: backup

RMAN-03023 :正在执行命令: backup

RMAN-08008 :通道 c1 :正在启动 full 数据文件备份集

RMAN-08502 : set_count=6 set_stamp=417351064 creation_time=26-12 月 -00

RMAN-08010 :通道 c1 :正在指定备份集中的数据文件

RMAN-08522 :输入数据文件 fno=00003 name=C:\ORACLE\ORADATA\RMAN\USERS01.DBF

RMAN-08522 :输入数据文件 fno=00005 name=C:\ORACLE\ORADATA\RMAN\TOOLS01.DBF

RMAN-08013 :通道 c1 :已创建 1 段

RMAN-08503 :段 handle=E:\DBBACKUP\DB_RMAN_6_1.BCK comment=NONE

RMAN-08525 :备份集完成,经过时间: 00:00:03

RMAN-08008 :通道 c1 :正在启动 full 数据文件备份集

RMAN-08502 : set_count=7 set_stamp=417351067 creation_time=26-12 月 -00

RMAN-08010 :通道 c1 :正在指定备份集中的数据文件

RMAN-08522 :输入数据文件 fno=00002 name=C:\ORACLE\ORADATA\RMAN\RBS01.DBF

RMAN-08522 :输入数据文件 fno=00006 name=C:\ORACLE\ORADATA\RMAN\INDX01.DBF

RMAN-08013 :通道 c1 :已创建 1 段

RMAN-08503 :段 handle=E:\DBBACKUP\DB_RMAN_7_1.BCK comment=NONE

RMAN-08525 :备份集完成,经过时间: 00:00:04

RMAN-08008 :通道 c1 :正在启动 full 数据文件备份集

RMAN-08502 : set_count=8 set_stamp=417351071 creation_time=26-12 月 -00

RMAN-08010 :通道 c1 :正在指定备份集中的数据文件

RMAN-08522 :输入数据文件 fno=00001 name=C:\ORACLE\ORADATA\RMAN\SYSTEM01.DBF

RMAN-08011 :备份集中包括当前控制文件

RMAN-08013 :通道 c1 :已创建 1 段

RMAN-08503 :段 handle=E:\DBBACKUP\DB_RMAN_8_1.BCK comment=NONE

RMAN-08013 :通道 c1 :已创建 2 段

RMAN-08503 :段 handle=E:\DBBACKUP\DB_RMAN_8_2.BCK comment=NONE

RMAN-08013 :通道 c1 :已创建 3 段

RMAN-08503 :段 handle=E:\DBBACKUP\DB_RMAN_8_3.BCK comment=NONE

RMAN-08013 :通道 c1 :已创建 4 段

RMAN-08503 :段 handle=E:\DBBACKUP\DB_RMAN_8_4.BCK comment=NONE

RMAN-08013 :通道 c1 :已创建 5 段

RMAN-08503 :段 handle=E:\DBBACKUP\DB_RMAN_8_5.BCK comment=NONE

RMAN-08013 :通道 c1 :已创建 6 段

RMAN-08503 :段 handle=E:\DBBACKUP\DB_RMAN_8_6.BCK comment=NONE

RMAN-08013 :通道 c1 :已创建 7 段

RMAN-08503 :段 handle=E:\DBBACKUP\DB_RMAN_8_7.BCK comment=NONE

RMAN-08525 :备份集完成,经过时间: 00:00:19

…. ….

RMAN-08008 :通道 c1 :正在启动 full 数据文件备份集

RMAN-08502 : set_count=9 set_stamp=417351090 creation_time=26-12 月 -00

RMAN-08010 :通道 c1 :正在指定备份集中的数据文件

RMAN-08522 :输入数据文件 fno=00004 name=C:\ORACLE\ORADATA\RMAN\TEMP01.DBF

RMAN-08013 :通道 c1 :已创建 1 段

RMAN-08503 :段 handle=E:\DBBACKUP\DB_RMAN_9_1.BCK comment=NONE

RMAN-08525 :备份集完成,经过时间: 00:00:07

RMAN-03023 :正在执行命令: partial resync

RMAN-08003 :启动部分恢复目录的 resync

RMAN-08005 :完成部分 resync

RMAN-08031 :释放的通道: c1

5 、使用脚本功能

使用脚本的目的在于方便我们操作中的方便,操作上和存储过程相似。

RMAN>create script l0dbbackup {

2> allocate channel c1 type disk;

3> backup

4> format ‘e:\dbbackup\db_%d_%s_%p.bck’

5> (database filesperset=2 );

6> }

RMAN-03022 :正在编译命令: create script

RMAN-03023 :正在执行命令: create script

RMAN-08085 :已创建脚本 l0dbbackup

RMAN>run {execute script l0dbbackup; }

创建恢复目录步骤:
1 、连接目录数据库并为目录创建表空间:
create tablespace rman_ts datafile ‘E:\ORACLE\ORADATA\MYUSR\rman.dbf’ size 20M default storage(initial 100k next 100k pctincrease 0);

2 、创建恢复管理器用户:
create user rman identified by rman default tablespace rman_ts temporary tablespace temp quota unlimited on rman_ts;

3 、授予该用户维护恢复目录和执行备份与恢复操作的角色和权限:
grant recovery_catalog_owner to rman;
grant connect,resource to rman;

4 、确保在表空间和回滚段有足够的空间。目录需要大约 20m 的空间,回滚段大约为 5m ;

5 、登录到 os ,运行 rman 命令调用 rman 命令编译器并创建目录。使用 MSGLOG(8I 中为 LOG) 选项允许 rman 将信息和命令输出到文件中。
$rman catalog rman/rman msglog=catalog.log
RMAN> create catalog tablespace rman_ts
RMAN> exit

6 、检查 rman 创建的 catalog.log 文件(如果没指定应在进入 rman 前的目录下),注意在创建恢复目录过程中是否有错误。如果发现了任何错误,应该删除目录拥有者的所有对象并重建它们。

7 、使用 rman 命令连接到包含目标数据库的服务器。应以具有 sysdba 权限的用户身份登录到目标数据库执行所有的备份和恢复操作。
$rman target ’sys/pass as sysdba’
RMAN> connect catalog rman/rman

注意:前提条件是已经把数据库置于 archivelog 状态
( shutdown immediate;– 注意不能用 abort
startup mount
alter database archivelog;
alter database open;

8 、在恢复目录中注册目标数据库。
RMAN> register database;

注意: rman 是使用内部数据库标志符( DBID )作为该数据库的唯一性标识, DBID 是在第一次创建数据库时计算出的。如果试图注册一个新的数据库,而这个数据库是通过拷贝已有数据库然后更名创建的,那么注册将失败。要备份拷贝的数据库,需要创建一个新的恢复目录拥有者,然后在这个新帐号创建恢复目录

$rman catalog rman/rman
rman: can’t open catalog
提示这样的错误,
RMAN> 提示符出现不了。

为什么?

原来我运行的 rman 命令是 /usr/X11R6/bin/rman
而不是 $ORACLE_HOME/bin/rman

Chapter 10   Configuring Oracle Databases

This chapter describes how to configure your Oracle database for use within the SilverStream server environment as a SilverMaster or an application database.

    For the latest information on supported database versions, see the Release Notes. In Windows, you can access the Release Notes from the SilverStream program group or from SilverStream online help.

This chapter includes these sections:

§ Setting up Oracle databases

§ Creating a SilverStream application database on Oracle

§ Installation requirements for HP-UX and AIX

§ Using synonyms

§ Troubleshooting


Setting up Oracle databases

SilverStream connects to Oracle using a Type 2 JDBC driver written by and provided by SilverStream. This driver interfaces with the Oracle SQL Net Client to achieve connectivity to the Oracle Server.

You must have the Oracle SQL Net Client software loaded onto the SilverStream server PC. Your version of the SQL Net client must not be 2.3.3.0.0 or you will experience problems when starting the SilverStream server or when trying to run databound forms/views from the SilverStream server. SilverStream recommends that you run with Version 2.3.4.0.0 of the SQL Net client.

To configure an Oracle database for use as a SilverMaster or application database, you need to:

1.   Install the Oracle SQL Net client onto the machine where the SilverStream server resides

2.   Create a SQL Net Alias for use by the SilverStream server

3.   Create an Oracle Tablespace to hold the SilverMaster tables

4.   Create an Oracle User for the SilverStream server

The sections that follow explain these tasks.

Once you have completed these tasks, you can install the SilverStream server.


Step 1: Install Oracle SQL Net Client

If Version 2.3.4.0.0 of the Oracle SQL Net Client is not installed on the SilverStream server machine, install it now before you continue. If you do not have this version of SQL Net, obtain it from Oracle Corporation.

Obtain the Oracle CD and follow the steps to install the client for an application user.

If you already have the client installed, you can run Oracle Installer (from the Oracle for Windows NT Program Folder) to determine the version of SQL Net that is installed.


Step 2: Create an Oracle SQL Net Alias

In order to connect to the Oracle Server, you must have a valid Oracle SQL Net Alias that references the target Oracle Server.

To create an Oracle SQL Net Alias:

1.   Run SQL Net Easy Configuration from the Oracle for Windows NT Program Group.

NOTE   On UNIX, run net8wiz.sh from the $ORACLE_HOME/bin/ directory.

2.   Choose Add a New Database Alias.

3.   Enter the name of the alias (you specified this name during the SilverStream server installation).

A suggested name for this alias is SilverMasterORCL.

4.   Choose TCP/IP as the protocol and select OK to continue.

5.   Enter the TCP/IP Host Name for the Oracle Server and enter the correct Instance name.

6.   Choose OK to continue.

7.   Choose Yes to create the new alias. At this point you can exit the SQL Net Easy Configuration utility.

8.   Test the newly created SQL Net Alias by using SQL Plus to connect to the Oracle database server.


Step 3: Create an Oracle Tablespace for use with SilverMaster

Creating a new Oracle Tablespace for use with SilverMaster ensures optimal performance and ease of installation. To create one, run SQL Plus and connect to Oracle as System or SYSDBA.

For example, this statement creates a Tablespace with an initial size of 30 MB.

  CREATE TABLESPACE SilverTablespace 
  DATAFILE `c:\databases\silvertablespace.dbf' SIZE 30M; 

You can issue this statement from a SQL Plus prompt.

If you choose to use an existing Tablespace, make sure there is enough space available.


Step 4: Create an Oracle user for the SilverStream server

To connect the SilverStream server to Oracle, create a new Oracle user for exclusive use by SilverStream. This user will own the SilverMaster tables.

Issue the following statements using the SQL Plus utility. These statements create the user and set the user’s privileges.

  CREATE USER smuser identified by password 
  DEFAULT TABLESPACE SilverTablespace 
  QUOTA UNLIMITED ON SilverTablespace; 
  GRANT CONNECT, RESOURCE to smuser; 
  REVOKE UNLIMITED TABLESPACE from smuser; 


Creating a SilverStream application database on Oracle

Adding an Oracle database to SilverStream equates to adding an Oracle Database User.

You use the SilverStream Designer Add Database option to make an existing database available as an application database. The Add Database option does two things:

§ Adds all the tables and views that the database user has access to (application tables)

§ Creates SilverStream system tables to store metadata


Before adding Oracle databases

Create a new unique SQL Net Alias, as outlined in the previous section.

Optional: if you want to store the SilverStream system tables in a separate database account, create an additional database user as described in the previous section and create a new Oracle SQL Net Alias. SilverStream system tables may also be stored in any other databases supported by SilverStream.

Database name

When adding an Oracle database to SilverStream, you are asked for the name of the database. This refers to the Oracle SQLNet Alias or TNSNAMES.ORA entry. The SQLNet Alias points to a specific Oracle Database Instance on a specific server. Typically you have one per Oracle database.

SilverStream requires a unique database name. This means that SilverStream requires you to create a unique SQLNet Alias for each Oracle Database User you add.

That means that if you have SilverMaster, application tables, and the SilverStream system tables stored in three different Oracle Database Users, you need three unique SQLNet Aliases–one for each user. Each SQLNet Alias points to the same Oracle database.

    Optionally, if you do not want to configure multiple SQLNet Aliases, see Using one SQLNet Alias.


Adding a database

If you already have data in an Oracle database, all you need to do for the SilverStream server to recognize it is:

§ Install the Oracle client on the SilverStream server machine.

§ Set up a TNS alias using the Oracle Easy Configuration utility.

§ Add the database through the SilverStream Designer, specifying the TNS Alias and the SilverStream Oracle Driver.


Using one SQLNet Alias

This is an optional advanced feature. The Add Database steps describe how to add an Oracle database with a separate SQLNet Alias (TNS NAME) for each Oracle database user that you use in the SilverStream environment.

The steps that follow are for experienced users. They document how you can install using a single SQLNet Alias:

To install using a single SQLNet Alias:

1.   When adding a new database to SilverStream, do not enter the SQLNet Alias (TNS NAME) in the database name box; enter any name you want.

2.   Now enter the user name and password as before and select Oracle 7 or Oracle 8 as the database platform.

3.   Choose User-specified JDBC driver for the driver set.

4.   Click Next.

You can now enter the JDBC connection string.

5.   For the JDBC URL, enter:

6.      jdbc:sssw:oracle:TNSNAME

replacing TNSNAME with the TNS NAME in your TNSNAMES.ORA file.

You can now connect as many databases as you like using the same TNS NAME.

Make sure you store the system tables separately.

What to avoid   You can reduce the chance of encountering problems if you follow these rules:

§ Do not put anything else in the same Oracle database user as your SilverMaster.

§ Do not put multiple system tables in the same Oracle Database User. These would conflict with each other. When adding multiple databases to SilverStream, you should keep their system tables separate.

Terminology differences   Different databases use different terminology. The SilverStream terminology might be confusing for Oracle users. For example, SilverStream Database means Oracle Database User. SilverStream uses the word databases, but on Oracle these map to Oracle Database Users. The following table describes other differences.

SilverStream term

Oracle term

SilverMaster Database

Oracle Database USER that owns the SilverMaster tables

Add a database

Add a specific USER in an Oracle database


Installation requirements for HP-UX and AIX

Accessing an Oracle database on HP-UX   To access an Oracle database that resides on HP-UX, you must have at least the following Oracle components installed:

§ Net8

§ Net8 External Naming Adapters

§ Net8 Protocol Adapters

§ Oracle Intelligent Agent

§ PL/SQL

§ SQL*Plus

In addition, during the Oracle installation process you will be asked if you want to relink Oracle product executables. You must answer yes. By default, the relinking will not occur.

If the Oracle installation is not sufficient for SilverStream, you will get the following error during SilverMasterInit:

  /usr/lib/dld.sl: Unresolved symbol: opinit (code) from /home/username/silverstream/bin/libagora_jni.sl

If you encounter this error or another type of connection error, verify that you have installed the Oracle components listed above and can connect to your database using SQL *Plus.

Accessing an Oracle 7 database on HP-UX or AIX   HP-UX and AIX users who want to connect to an Oracle 7 database either as a SilverMaster or application database must be using the following:

§ An Oracle 7 server

§ Oracle 8 client software

§ The SilverStream Oracle 7 driver


Using synonyms

The SilverStream server provides support for Oracle 8 synonyms for tables and views. You can see synonyms for tables and views in the SilverStream Designer’s list of tables.

NOTE   With Oracle 8, you can also define synonyms for other kinds of objects, including object tables, object views, and stored procedures. SilverStream supports synonyms only for tables and views.

Specifying the driver   The default SilverStream driver set for Oracle 8–SilverStream JDBC driver–does not support synonyms.

In order to enable synonym support, you need to specify the driver set SilverStream JDBC driver with synonym/mixed case support when adding the Oracle 8 database to the SilverStream server.

Once you have chosen this driver set for an Oracle 8 database, synonyms defined for tables and views are displayed in the Designer’s list of tables, as long as you have access to the synonyms, as described next.

Types of synonyms   Synonyms can be either private or public. A public synonym is owned by the special user group PUBLIC; every user of a database can access it.

A private synonym is in the schema of a specific user, who has control over its availability to others (see the Oracle manual Oracle 8 Release 8.0 Concepts, Volume 1). Individual users can see only the public synonyms and their own private synonyms.

How synonyms behave   A synonym that displays in the table list behaves exactly like its underlying table or view–because support for synonyms is built into the JDBC method calls, which access the underlying tables and views to retrieve the required information.

The following JDBC implementation methods have synonym support built in: getTables, getTableTypes, getTablePrivileges, getColumnPrivileges, getPrimaryKeys, getImportedKeys, getExportedKeys, getCrossReference, and getIndexInfo.

Enabling and disabling synonym support   There is a property called includeSynonyms in the platforms.dbl file in the SilverStreamInstallDir/Resources directory that specifies whether a driver supports synonyms. The property is in the PROPERTIES section for the driver.

By default, the property is set to true for SilverStream JDBC driver with synonym/mixed case support.

  DRIVER
  /Name ...
  /JdbcDriver ...
  /DriverSet ...
  ...
  
  PROPERTIES
  /includeSynonyms       "true"

If you want to use this driver but want synonym support disabled, set the includeSynonyms property to false.

Similarly, if you have written your own Oracle 8 driver and have implemented synonym support, to enable the support you need to set the includeSynonyms property to true in the PROPERTIES section for your driver.


Troubleshooting

This section describes the most common errors and workarounds if available.

ORA-01019 “unable to allocate memory in the user side”   If you receive this message while running with a Net8 Oracle Client, free up available memory on the machine where the SilverStream server is installed.

ORA-01460 “unimplemented or unreasonable conversion requested”   If you receive this message when SilverMasterInit is creating an Oracle SilverMaster or when you are attempting to add an Oracle database to your SilverStream server, you must upgrade to at least Version 8.0.4 of the Oracle client software. This problem occurs on versions before 8.0.4.

ORA-01631, 00000, “max # extents (%s) reached in table %s.%s”   This message is caused when a table tried to extend past maxextents. To solve this problem, check your INITIAL, NEXT, and PCTINCREASE parameters on the DEFAULT TABLESPACE for the SilverMaster user. You must get your DBA to increase them. For example:

  SELECT DEFAULT_TABLESPACE 
  FROM dba_users 
  WHERE username = 'MYUSER'; 
  SELECT * 
  FROM dba_tablespaces 
  WHERE tablespace_name = 'MYTABLESPACE'; 
  ALTER TABLESPACE MYTABLESPACE 
  DEFAULT STORAGE (INITIAL 10K, NEXT 10K, PCTINCREASE 50); 

ORA-01950, 00000, “no privileges on tablespace ‘%s’”   This message is caused when a user does not have privileges to allocate an extent in the specified tablespace. To solve this problem, grant QUOTA to the user on the mentioned database. For example:

  ALTER USER MYUSER 
  QUOTA UNLIMITED ON MYTABLESPACE; 

TNS-12154 “TNS: could not resolve service name”   If you receive this message, you must verify that you have correctly created the SQL Net Alias as described in Step 2: Create an Oracle SQL Net Alias.

Adding large numbers of tables   If you are planning to connect SilverStream to a large Oracle tablespace, open the SilverStream Management Console (SMC) and change the value of the timeout for server requests to 30,000 seconds.

You must modify this value before attempting to add any large Oracle application. Once the application has been added successfully, reset the value back to the default value (3,000).

The SilverStream server must be restarted for these changes to be applied.

    For more information, see the section on setting performance parameters in the Administrator’s Guide.

SilverStream server hangs    If the SilverStream server hangs during server startup or when you try to test a databound form or view, check to see if you are running SQLNet Client Version 2.3.3.0.0. SilverStream does not support this version of SQL Net and recommends that you upgrade the SQLNet client to 2.3.4. You can obtain this upgrade from Oracle Corporation

Export/Import 使用技巧与常见错误

Export Import 是一对读写Oracle数据的工具. Export Oracle 数据库中的数据输出到操作系统文件中, Import 把这些文件中的数据读到Oracle 数据库中. Export/Import可以用来完成以下工作: 数据归档, 数据库升级, 备份数据库, 把数据从一个数据库移到另一个数据库, 回收数据库存储碎片等等.
  
   
使用Export除了要保证磁盘或磁带上有足够的空间, 还必须执行expvew.sqlexpvew.sql来创建Export使用的示图, 并创建EXP_FULL_DATABASE ROLE. 使用Export的用户应具有CREATE SESSION的权限, 若要Export其他用户的表还要有EXP_FULL_DATABASE ROLE.同样, 使用Import必须用catex.sql来创建IMP_FULL_DATABASE ROLE. 使用Import的用户应具有CREATE SESSION的权限. Import只能读入用Export创建的文件. 如果该文件是全库Export, 使用Import的用户还要有IMP_FULL_DATABASE ROLE.   

   Export/Import有三个级别: 表级, 用户级和全数据库级.

   表级允许Export/Import指定的表而不涉及其他数据库对象. 用户级Export/Import只针对属于指定用户的全部数据库对象. 只有拥有EXP_FULL_DATABASE/IMP_FULL_DATABASE ROLE 的用户才能使用全数据库级的Export/Import.

      有三种方式执行Export/Import: 参数文件方式, 命令行方式和交互式.

      使用参数文件是一种比较好的方式, 格式为:

         Exp <username/password> PARFILE = <filename>

         Imp <username/password> PARFILE = <filename>

      命令行方式是指在命令行中指定参数:

         Exp <username/password> TABLES = (emp,dept) GRANTS = y

         Imp <username/password> FROMUSER = scott TOUSER = test TABLES = (emp,dept)

      交互式只要敲入ExpImp然后回答屏幕上的提问即可.

下面介绍一些EXPORT/IMPORT的使用技巧 0

   - 把数据库对象从一个用户移到另一个用户

      Oracle 不允许直接改变表的拥有者, 利用Export/Import可以达到这一目的.

      假设要把表 T 的拥有者User1改为User2,  具体步骤是:

         - exp system/manager tables = User1.T

         - imp system/manager fromuser = User1 touser = User2 tables = T

         - drop table User1.T

         - 把数据库对象从一个表空间移到另一个表空间

      建表时可以指定表空间, 表空间一经确定就部能随意改变. 若要表 T 从表空间 tbs1移到表空间 tbs2, 就要采用以下方法:

         - exp <user/passwd> tables = T

         - imp <user/passwd> tables = T indexfile =  temp.sql

         - drop table T

         - 编辑 temp.sql 只保留所需的建表命令并指定表空间为tbs2

         - 以表的所有者执行temp.sql

         - imp <user/passwd> tables = T ignore = Y

     - 只输出一个的表空间

      通常数据库设计成用户若属于某个表空间, 那么这个用户创建的数据库对象也在该表空间内.

   Export某个表空间可用如下方法:

         - 查看表空间内所有用户

             spool owners
           
             select owner

             from dba_segments

             where tablespace_name = ‘<TablespaceName>’;
           

            spool off

            
         - 查看表空间内所有数据库对象

             spool objects

             select owner, object_name, object_type

             from  dba_objects

             where owner = ‘owner1′

             or   owner = ‘owner2′

                  …

             or   owner = ‘ownern’;

             spool off

        - 作表级Export         

   - Exp文件中提取创建数据库对象的命令

     IMPORT时使用 ‘INDEXFILE =  FileName’, IMPORT把创建数据库对象的命令输出到指定的文件中, 编辑后运行这个文件就能建立数据库对象.

   

下面介绍Export/Import 使用中几个常见的问题和解决办法

   - Export/Import 使用不同的字符集

      Export文件中包含着字符信息. 如过输入/输出都使用担字节字符集, EBCDICUS7ASCII, 输入时将自动进行字符集转换. 转换过程中, 若输出文件中含有的目标字符集中不能匹配的字符会自动设成缺省字符.

      对于多字节字符集, ZHS16CGB231280, 通常不能自动转换, 只有在字符串长度不变的情况下才能自动转换.      

   - 空间不够碎片问题

      有些时候, 即使数据库仍有足够的空间, 使用IMPORT时却出空间不够的错误. 出现这种现象通常是由于数据库中存在碎片, 即有很多小的不连续的空闲空间. 解决办法是先将数据库全库EXPORT(FULL=Y), SHUTDOWN数据库, 重新建库(CREATE DATABASE)后用IMPORT FULL=Y恢复数据.

   - ROLLBACK段不够

      Export/Import使用过程中, 如果数据量很大会出现‘ROLLBACK段不够的错误. 这时要建一个足够大的ROLLBACK, 使它ONLINE而其他ROLLBACKOFFLINE. 这样, Export/Import使用这个大ROLLBACK, 从而避免上述现象.

 

 

 

 

不同观点。

/* 空间不够碎片问题

解决办法是先将数据库全库EXPORT(FULL=Y), SHUTDOWN数据库归类于: 未分类 — ivan @ 5:44 pm 评论关闭

Export/Import 使用技巧与常见错误

Export Import 是一对读写Oracle数据的工具. Export Oracle 数据库中的数据输出到操作系统文件中, Import 把这些文件中的数据读到Oracle 数据库中. Export/Import可以用来完成以下工作: 数据归档, 数据库升级, 备份数据库, 把数据从一个数据库移到另一个数据库, 回收数据库存储碎片等等.
  
   
使用Export除了要保证磁盘或磁带上有足够的空间, 还必须执行expvew.sqlexpvew.sql来创建Export使用的示图, 并创建EXP_FULL_DATABASE ROLE. 使用Export的用户应具有CREATE SESSION的权限, 若要Export其他用户的表还要有EXP_FULL_DATABASE ROLE.同样, 使用Import必须用catex.sql来创建IMP_FULL_DATABASE ROLE. 使用Import的用户应具有CREATE SESSION的权限. Import只能读入用Export创建的文件. 如果该文件是全库Export, 使用Import的用户还要有IMP_FULL_DATABASE ROLE.   

   Export/Import有三个级别: 表级, 用户级和全数据库级.

   表级允许Export/Import指定的表而不涉及其他数据库对象. 用户级Export/Import只针对属于指定用户的全部数据库对象. 只有拥有EXP_FULL_DATABASE/IMP_FULL_DATABASE ROLE 的用户才能使用全数据库级的Export/Import.

      有三种方式执行Export/Import: 参数文件方式, 命令行方式和交互式.

      使用参数文件是一种比较好的方式, 格式为:

         Exp <username/password> PARFILE = <filename>

         Imp <username/password> PARFILE = <filename>

      命令行方式是指在命令行中指定参数:

         Exp <username/password> TABLES = (emp,dept) GRANTS = y

         Imp <username/password> FROMUSER = scott TOUSER = test TABLES = (emp,dept)

      交互式只要敲入ExpImp然后回答屏幕上的提问即可.

下面介绍一些EXPORT/IMPORT的使用技巧 0

   - 把数据库对象从一个用户移到另一个用户

      Oracle 不允许直接改变表的拥有者, 利用Export/Import可以达到这一目的.

      假设要把表 T 的拥有者User1改为User2,  具体步骤是:

         - exp system/manager tables = User1.T

         - imp system/manager fromuser = User1 touser = User2 tables = T

         - drop table User1.T

         - 把数据库对象从一个表空间移到另一个表空间

      建表时可以指定表空间, 表空间一经确定就部能随意改变. 若要表 T 从表空间 tbs1移到表空间 tbs2, 就要采用以下方法:

         - exp <user/passwd> tables = T

         - imp <user/passwd> tables = T indexfile =  temp.sql

         - drop table T

         - 编辑 temp.sql 只保留所需的建表命令并指定表空间为tbs2

         - 以表的所有者执行temp.sql

         - imp <user/passwd> tables = T ignore = Y

     - 只输出一个的表空间

      通常数据库设计成用户若属于某个表空间, 那么这个用户创建的数据库对象也在该表空间内.

   Export某个表空间可用如下方法:

         - 查看表空间内所有用户

             spool owners
           
             select owner

             from dba_segments

             where tablespace_name = ‘<TablespaceName>’;
           

            spool off

            
         - 查看表空间内所有数据库对象

             spool objects

             select owner, object_name, object_type

             from  dba_objects

             where owner = ‘owner1′

             or   owner = ‘owner2′

                  …

             or   owner = ‘ownern’;

             spool off

        - 作表级Export         

   - Exp文件中提取创建数据库对象的命令

     IMPORT时使用 ‘INDEXFILE =  FileName’, IMPORT把创建数据库对象的命令输出到指定的文件中, 编辑后运行这个文件就能建立数据库对象.

   

下面介绍Export/Import 使用中几个常见的问题和解决办法

   - Export/Import 使用不同的字符集

      Export文件中包含着字符信息. 如过输入/输出都使用担字节字符集, EBCDICUS7ASCII, 输入时将自动进行字符集转换. 转换过程中, 若输出文件中含有的目标字符集中不能匹配的字符会自动设成缺省字符.

      对于多字节字符集, ZHS16CGB231280, 通常不能自动转换, 只有在字符串长度不变的情况下才能自动转换.      

   - 空间不够碎片问题

      有些时候, 即使数据库仍有足够的空间, 使用IMPORT时却出空间不够的错误. 出现这种现象通常是由于数据库中存在碎片, 即有很多小的不连续的空闲空间. 解决办法是先将数据库全库EXPORT(FULL=Y), SHUTDOWN数据库, 重新建库(CREATE DATABASE)后用IMPORT FULL=Y恢复数据.

   - ROLLBACK段不够

      Export/Import使用过程中, 如果数据量很大会出现‘ROLLBACK段不够的错误. 这时要建一个足够大的ROLLBACK, 使它ONLINE而其他ROLLBACKOFFLINE. 这样, Export/Import使用这个大ROLLBACK, 从而避免上述现象.

 

 

 

 

不同观点。

/* 空间不够碎片问题

解决办法是先将数据库全库EXPORT(FULL=Y), SHUTDOWN数据库, 重新建库(CREATE DATABASE)后用IMPORT FULL=Y恢复数据.
*/

不同观点:

解决碎片,应该在表空间这个层次上就可以了,
1
exp 出要整理的表空间的各个用户。
2
。删除表空间,重新建立该表空间
3
。再imp

   - ROLLBACK段不够

  /*    Export/Import使用过程中, 如果数据量很大会出现‘ROLLBACK段不够的错误. 这时要建一个足够大的ROLLBACK, 使它ONLINE而其他ROLLBACKOFFLINE. 这样, Export/Import使用这个大ROLLBACK, 从而避免上述现象.

*/

imp时使用参数 commit=y ,就可以避免要求很大的回退段,
imp
到底用哪个ROLLBACK段是没法指定的,
如果系统刚启动,oracle顺序地用 初始化参数文件中指定的ROLLBACK
而后,事务以“最少使用原则”选取使用ROLLBACK段。
除非,在imp前,让一个大ROLLBACKonline,紧接着imp
否则很难说,oralce就正好用大ROLLBACK段。

以上想法如果有不当之处,恳请指教。

REDHAT AS 3.0下安装ORACLE APPLICATION 1159

安装Redhat as 3.0,笔者的硬件如下:PIV 2.4G 80G+60G硬盘,1G RAM

分区如下:在60G的硬盘下分区:(建议放ERP的目录至少70G或以上)

/         – 500MB 

/boot     – 100MB

/home     – 1024MB

/tmp      – 500MB

swap      交换分区2048

/usr      –10240

/var      –500MB

/opt      –10240

/tools    –33503

/opt      –10240

第二个硬盘80G

/u01      –80G

 

一、建立组及用户:

APPS OS  User  =applprod    Oracle OS User=oraprod  group=dba

#groupadd dba

#useradd applprod        -g dba -c ‘APPS OS User ‘

#useradd oraprod  -g dba -c ‘Oracle DB User’

 

设置这两USER密码

       #passwd  applprod        #passwd  oraprod 

 

二、建立相应的目录及属主(root用户建立)

mkdir /oradata                            root所有

mkdir /oradata/prodappl              applprod:dba所有

mkdir /oradata/prodcomn             applprod:dba所有

mkdir /oradata/prodora               applprod:dba所有

mkdir /oradata/proddb                      oraprod:dba所有

mkdir /oradata/proddata              oraprod:dba所有

mkdir /oradata/prodora/8.0.6          applprod:dba所有

mkdir /oradata/prodora/iAS           applprod:dba所有

更改属主:

chown -R applprod:dba  oradata/prodappl  oradata/prodcomn  oradata/prodora

chown -R oraprod:dba  oradata/proddb oradata/proddata

注:如果ERP安装过程中出现FILE CHECK错误时,则相应改属主,以我的经验,/oradata/prodora/8.0.6 /oradata/prodora/iAS 这两个目录容易报错,则试改回oraprod:dba试试.

 

三、把网络配置好,我的IP160.160.60.60 子网:255.255.0.0 网关:160.160.1.1 DNS:202.106.0.20

 主机名为:zhongyl(建议主机名为不带其它符号来定义,否则,安装完后ERP可能会出现机器规格错误)

1、修改/etc/hosts,加入:你的主机IP  主机名.****.com.cn 我的则加入为:

160.160.60.60  zhongyl.myerp.com.cn

2、修改/etc/sysconfig/network

HOSTNAME= zhongyl.myerp.com.cn

 

修改root的配置文件,打开终端:

#vi .bash_profile 加入:

export LD_ASSUME_KERNEL=2.4.1 –Very重要!不能写当前L INUX系统的内核号,否则安装途中会报错

(LD_ASSUME_KERNEL环境变量的说明:

这个参数实际上是为了避免Linux上的NPTL(Native POSIX Thread Library)Oracle应用不兼容的问题. 设定LD_ASSUME_KERNEL2.4.1表示使用旧有的 “Linuxthreads with floating stacks” . (这里有对 floating stacks的大体上的解释. )

四、从sun下载JDK(J2sdk-1_4_0_04-linux-i586-rpm.bin)(注:ORACLE 建议用1.3.1,所以建议下载1.3.1)     

         jre(jre-1_4_0_04-fcs-linux-i586-rpm.bin)

安装之,如果没安装则会出错:

Initializing Java Virtual Machine from /tmp/OraInstall0/jre/bin/jre. Please wait…

/tmp/OraInstall0/jre/lib/linux/native_threads/libzip.so: symbol errno,

version GLIBC_2.0 not defined in file libc.so.6 with link time reference (libzip.so)

Unable to initialize threads: cannot find class java/lang/Thread

Could not create Java VM

 

五、 修改LINUX的内核参数:

/etc/sysctl.conf 加入:

      kernel.shmmax = 2147483648

       kernel.shmmni = 4096

       kernel.shmall = 2097152

       kernel.sem    = 250 32000 100 128

       fs.file-max   = 65536

net.ipv4.ip_local_port_range = 1024 65000

 

/etc/security/limits.conf 加入:

       oracle soft nofile 65536

       oracle hard nofile 65536

       oracle soft nproc 16384

       oracle hard nproc 16384

 

六、检查并安装相关补丁

确认以下rpm包都已经安装:

# rpm -qa | grep compat

compat-gcc-7.3-2.96.122

compat-libstdc++-devel-7.3-2.96.122

compat-gcc-c++-7.3-2.96.122

compat-libstdc++-7.3-2.96.122

compat-glibc-7.x-2.2.4.32.5

compat-db-4.0.14-5

 

# rpm -qa | grep openmotif

openmotif-2.2.2-16

openmotif-devel-2.2.2-16

 

#openmotif-2.2.2-16 即可

 

# rpm -qa | grep setarch

setarch-1.3-1

 

上面显示的内容是在笔者已经安装了具体的RPM包之后的结果.一般情况下,你的系统上的输出结果和这个不同.如果个别包没有安装,把系统安装光盘mount,找到具体的软件包(大多数在第三张光盘上),然后利用如下的命令来安装相应的包:

 

# rpm -ivh compat…..rpm

 

要额外注意的是,这些软件包之间是有依赖性的,先后的顺序要找好.否则会报告不能安装的错误.

 

还需要将gccg++更换为2.96的版本. (参考 Metalink 上的 Oracle Note:252217.1 )

 

# mv /usr/bin/gcc /usr/bin/gcc323

ping万维平www

# ln -s /usr/bin/gcc296 /usr/bin/gcc

# mv /usr/bin/g++ /usr/bin/g++323

# ln -s /usr/bin/g++296 /usr/bin/g++

 

如果报告找不到文件,请确认该软件包是否安装.

Metalink ( http://metalink.oracle.com/ 需要CSI )下载必须的补丁,需要的补丁:

 

p3095277_9204_LINUX.zip 9.2.0.4.0的升级补丁包.

p3006854_9204_LINUX.zip 在运行 runInstaller 之前打.

p3119415_9204_LINUX.zip 在升级到9.2.0.4.0之后打.

p2617419_210_GENERIC.zip 3119415补丁所需要的.

 

p3095277_9204_LINUX.zip大约有300多兆.如何快速下载Metalink上的补丁?请参考这个Link:

http://www.ncn.cn/oracle/tips/oratip009.htm

 

后面的三个比较小.可以在 ITPub 下载:

http://www.itpub.net/showthread.php?s=&threadid=171693&perpage=15&pagenumber=1

 

安装前需要打补丁3006854: 注意,必须以root身份运行.

 

# unzip p3006854_9204_LINUX.zip

会在当前目录下创建一个目录,进入到该目录中

 

# cd 3006854

# ./rhel3_pre_install.sh

如果报告如下错误:

-bash: ./rhel3_pre_install.sh: Permission denied

修改一下权限就可以了

# chmod +x *.sh

 

七、以上都做完后,重新启动电脑

八、执行ORACLE ERP安装在

#cd  相应目录/Stage11i/startCD/Disk1/rapidwiz

#./ rapidwiz     ———安装

 

1.在安装到33%(执行adrun9i.sh)如果出错:

Cannot execute configure of database ORACLE_HOME

Error – script has returned an error : 4

Error Code received when running external process. Check log file for details.Running Database Install Driver for Prod Instance

这个出错信息应该为安装BUG,解决方法如下:

找到instconf.drv 文件,笔者的路径是:

#cd  /u01/oradata/proddb/9.0.2/appsutil/driver/

#vi  instconf.drv

查找出以下字符串,并把相应段屏蔽(用‘#’)

OraSCV.asc ,emreadme.txt ,README_EM.txt ,README_em.txt

注释后,保存退出

 

然后再找出安装LOGdbInstallcfg.log,笔者的路径是:

#cd /u01/oradata/proddb/9.2.0/appsutil/log/PROD_linux-pc/

#vi dbInstallcfg.log

查找出以下字符串,OraSCV.asc ,emreadme.txt ,README_EM.txt ,README_em.txt,并按照文件的source 复制到dest backup亦是一样。

都复制完后,在安装界面按‘RETRY’即可(复制技巧:用vi打开此文件,然后用复制,粘贴)

 

 

九:修改applprodoraprod用户配置文件(具体的目录请根据你的相应目录而改变)

applprod用户登陆,打开终端:

#vi .bash_profile    加入:

export LD_ASSUME_KERNEL=2.4.1

export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib:/usr/X11R6/lib

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib

. /u01/oradata/prodappl/APPSPROD_zhongyl.env

 

oraprod用户登陆,打开终端:

#vi bash_profile  加入:

export LD_ASSUME_KERNEL=2.4.1

export ORACLE_BASE=/u01/oradata/proddb

export ORACLE_HOME=$ORACLE_BASE/9.2.0

export ORACLE_SID=PROD

export ORACLE_TERM=xterm

export ORA_NLS33=$ORACLE_HOME/ocommon/nls/admin/data

export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib:/usr/X11R6/lib

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib

export PATH=$PATH:$ORACLE_HOME/bin

. /u01/oradata/proddb/9.2.0/PROD_zhongyl.env

(注:. /之间要有一个空格)

安装完后成,如果提示HTTPPHPJSP错误,可以不理它,直接下一步,按完成即可。

十:检查 /etc/sysconfig/networking/profiles/default/network

    如果存在任何文件,则DEL之(建议用改名方式或者在桌面下删除) 重启动电脑。

先启动ORACLE数据库(切换到       oraprod)

#lsnrctl start             启动监听器

#sqlplus

提示输入用户名,则输入:sys/oracle as sysdba

显示启动成功,再输入:  startup

 

 

再启动 ERP应用服务(:切换到applprod用户)

#cd /u01/oradata/prodcomn/admin/scripts/PROD_linux-pc/

# ./adstrtal.sh apps/apps

 

在启动ORACLE应用服务时如果出现错误:

是因为libdb.so.2没有建立链接,笔者在/usr/lib下建立链接:

#ln –s /usr/lib/libdb.so.2 /usr/lib/libdb.so.3

 (注:一定要用这个libdb.so.2来链接,否则系统还会报错)

       先关闭应用:

#cd /u01/oradata/prodcomn/admin/scripts/PROD_linux-pc/

# ./adstpall.sh apps/apps

 

重新启动应用服务,应该成功矣。

#cd /u01/oradata/prodcomn/admin/scripts/PROD_linux-pc/

# ./adstrtal.sh apps/apps

十一、客户端安装

HOSTS中加入:160.160.60.60  zhongyl.myerp.com.cn

然后在IE中把安全级别改为‘低’,然后在IE中输入:http:// zhongyl.myerp.com.cn:8000/dev60cgi/f60cgi

 

 

联系方式:

MSN:macrozyl@hotmail.com 

我家里的电脑oracle装在windows下,我在oracle下建了两个例程,但我不知道怎么切换,unix下的那套行不通的。请教各位

 

cmd模式下 set oracle_sid=your_oracle_instance
或者设置系统变量

 

我就是用这个方法啊,set ORACLE_SID=INSTANCE,还用export ORACLE_SID吗?我做怎么不对啊,奇怪。谢谢,我晚上再试试。