Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1633179
  • 博文数量: 409
  • 博客积分: 6240
  • 博客等级: 准将
  • 技术积分: 4908
  • 用 户 组: 普通用户
  • 注册时间: 2011-06-01 00:04
文章分类

全部博文(409)

文章存档

2021年(1)

2019年(1)

2017年(1)

2016年(13)

2015年(22)

2013年(4)

2012年(240)

2011年(127)

分类: Oracle

2011-11-13 19:21:59

首先抱怨一下,我操操操啊!整理了半天,刚才一不小心给关闭了页面。。。重新来,还要做饭。差不多,凑合看吧,部分是从网上找的,部分是在自己服务器上测试的结果。

//pc cms备份脚本,最初哪位哥们写的脚本,我也不知道了,从服务器上拿了下来我。

#!/bin/bash
HOSTNAME=DATABASE
SHELL=/bin/bash
NLS_LANG=American_america.zhs16gbk
ORACLE_OWNER=oracle
LD_LIBRARY_PATH=/oracle/product/10g/lib:
ORACLE_SID=tysxcms
ORACLE_BASE=/oracle
TNS_ADMIN=/oracle/product/10g/network/admin
PATH=/oracle/product/10g/bin:/oracle/bin:/usr/lib/qt-3.3/bin:/usr/kerberos/bin:/usr/local/bin:/bin:/usr/bin:/home/oracle/bin
HOME=/home/oracle
LOGNAME=oracle
ORACLE_HOME=/oracle/product/10g
export HOSTNAME
export SHELL
export NLS_LANG
export LD_LIBRARY_PATH
export ORACLE_SID
export ORACLE_BASE
export PATH
export HOME
export LOGNAME
export TNS_ADMIN
export ORACLE_OWNER
export ORACLE_HOME
#==========================exp=================
extfile=`date '+%Y%m%d'`
#rm -rf /home/oracle/*.dmp
echo '==================='$extfile'========================'
exp shvnetMedia/pccms\$tysx\$netitv file=/home/oracle/$extfile.dmp

echo '===================FTP start========================'
ftp -n<

#ftp -i -v -n 192.168.0.174 <open 192.168.0.174
user dbbacker cmsdbbacker
bin
put /home/oracle/$extfile.dmp ./$extfile.dmp
bye
echo '===================finished========================'

!

// 其中,如果在系统/etc/profile在安装Oracle的时候已经export那些变量,这里就简单了,只需要一个exp、判断磁盘空间的if、ftp 命令、rm就ok了。 

-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------

关键的就这一步:exp  file=bak.dmp log=bak.log buffer=10240   

其中如果是在本地数据备份,实例名可以不要。

-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------

/e/yangkai/mtouch/server_linux/oracle.txt

Linux 如何启动和关闭Oracle 服务

启动oracle 
su - oracle 
sqlplus /nolog 
conn /as sysdba 
startup 
exit 
lsnrctl start 
exit

关闭oracle 
su - oracle 
sqlplus /nolog 
conn /as sysdba 
shutdown immediate 
exit 
lsnrctl stop 
exit 
***************************************************************************

exp/imp的使用详解:

 ------------------------------------------------------- ------------------------------------------------------- -------------------------------------------------------

--如何在中导入dmp数据库文件? 

  oracle数据导入导出imp/exp就相当于oracle数据还原与。exp命令可以把数据从远程导出到本地的dmp文件,imp命令可以把dmp文件从本地导入到远处的数据库服务器中。 利用这个功能可以构建两个相同的数据库,一个用来,一个用来正式使用。 执行环境:可以在sqlplus.exe或者dos(命令行)中执行, dos中可以执行时由于在oracle 8i 中 目录\ora81\bin被设置为全局路径, 该目录下有exp.exe与imp.exe文件被用来执行导入导出。 oracle用编写,sqlplus.exe、exp.exe、imp.exe这两个文件有可能是被包装后的类文件。 sqlplus.exe调用exp.exe、imp.exe所包裹的类,完成导入导出功能。 下面介绍的是导入导出的实例。
     数据导出:
 1 将数据库test完全导出,用户名system 密码manager 导出到d:\daochu.dmp中  
exp file=d:\daochu.dmp full=y 
  2 将数据库中system用户与sys用户的表导出  
expfile=d:\daochu.dmp wner=(system,sys) 
  3 将数据库中的表inner_notify、notify_staff_relat导出   
exp file= d:\data\newsmgnt.dmp tables=(inner_notify,notify_staff_relat)  
  4 将数据库中的表table1中的字段filed1以"00"打头的数据导出  
expfile=d:\daochu.dmp tables=(table1) query=\" where filed1 like 00%\"   
上面是常用的导出,对于压缩,既用winzip把dmp文件可以很好的压缩。也可以在上面命令后面加上 compress=y 来实现。

     数据的导入 

1 将d:\daochu.dmp 中的数据导入 test数据库中。  
imp  file=d:\daochu.dmp  
impfull=y  file=file= d:\data\newsmgnt.dmp ignore=y   
上面可能有点问题,因为有的表已经存在,然后它就报错,对该表就不进行导入。 在后面加上 ignore=y 就可以了。
 2 将d:\daochu.dmp中的表table1 导入 
imp  file=d:\daochu.dmp  tables=(table1)   
基本上上面的导入导出够用了。不少情况要先是将表彻底删除,然后导入。 
注意: 操作者要有足够的权限,权限不够它会提示。 数据库时可以连上的。可以用tnsping test 来获得数据库test能否连上。

附录一: 
给用户增加导入数据权限的操作 
第一,启动sql*puls 
第二,以system/manager登陆 
第三,create user 用户名 identified by 密码(如果已经创建过用户,这步可以省略) 
第四,grant create user,drop user,alter user ,create any view ,   drop any view,exp_full_database,imp_full_database,      dba,connect,resource,create session  to 用户名字  
第五, 运行-cmd-进入dmp文件所在的目录,       imp userid=system/manager full=y file=*.dmp      或者 imp userid=system/manager full=y file=filename.dmp
 执行示例: f:\work\oracle_data\backup>imp userid=test/test full=y file=inner_notify.dmp
屏幕显示
import: release 8.1.7.0.0 - production on 星期四 2月 16 16:50:05 2006(c) copyright 2000 oracle corporation.  all rights reserved.

连接到: oracle8i enterprise edition release 8.1.7.0.0 - productionwith

the partitioning optionjserver release 8.1.7.0.0 - production

经由常规路径导出由export:v08.01.07创建的文件已经完成zhs16gbk字符集和zhs16gbk nchar 字符集中的导入导出服务器使用utf8 nchar 字符集 (可能的ncharset转换). 正在将aichannel的对象导入到 aichannel. . 正在导入表"inner_notify"  4行被导入准备启用约束条件...成功终止导入,但出现警告。
 附录二: 
oracle 不允许直接改变表的拥有者, 利用export/import可以达到这一目的. 
先建立import9.par,  然后,使用时命令如下:imp parfile=/filepath/import9.par 
例 import9.par 内容如下:  
fromuser=tgpms               
touser=tgpms2    (注:把表的拥有者由fromuser改为touser,fromuser和touser的用户可以不同)                 
rows=y       
indexes=y       
grants=y       
constraints=y       
buffer=409600       
file==/backup/ctgpc_20030623.dmp       
log==/backup/import_20030623.log
附录三
EXP、IMP 命令详解
命令详解:
E:\>exp help=y

通过输入 EXP 命令和用户名/口令,您可以
在用户 / 口令之后的命令:

实例: EXP SCOTT/TIGER
或者,您也可以通过输入跟有各种参数的 EXP 命令来控制“导出”的运行方式。
要指定参数,您可以使用关键字:
格式: EXP KEYWORD=value 或 KEYWORD=(value1,value2,...,valueN)
实例: EXP SCOTT/TIGER GRANTS=Y TABLES=(EMP,DEPT,MGR)
或 TABLES=(T1: P1,T1: P2),如果 T1 是分区表
USERID 必须是命令行中的第一个参数。

-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------

关键字说明(默认)
---------------------------------------------------
USERID     用户名/口令
FULL     导出整个文件 (N)
BUFFER     数据缓冲区的大小
OWNER     所有者用户名列表
FILE     输出文件 (EXPDAT.DMP)
TABLES     表名列表
COMPRESS     导入一个范围 (Y)
RECORDLENGTH   IO 记录的长度
GRANTS     导出权限 (Y)
INCTYPE     增量导出类型
INDEXES     导出索引 (Y)
RECORD     跟踪增量导出 (Y)
ROWS     导出数据行 (Y)
PARFILE     参数文件名
CONSTRAINTS   导出限制 (Y)
CONSISTENT     交叉表一致性
LOG     屏幕输出的日志文件
STATISTICS     分析对象 (ESTIMATE)
DIRECT     直接路径 (N)
TRIGGERS     导出触发器 (Y)
FEEDBACK     显示每 x 行 (0) 的进度
FILESIZE     各转储文件的最大尺寸
QUERY     选定导出表子集的子句
下列关键字仅用于可传输的表空间
TRANSPORT_TABLESPACE   导出可传输的表空间元数据 (N)
TABLESPACES   将传输的表空间列表
E:\>imp help=y
可以通过输入 IMP 命令和您的用户名/口令
跟有您的用户名 / 口令的命令:
实例: IMP SCOTT/TIGER
或者, 可以通过输入 IMP 命令和各种自变量来控制“导入”按照不同参数。
要指定参数,您可以使用关键字:
格式: IMP KEYWORD=value 或 KEYWORD=(value1,value2,...,vlaueN)
实例: IMP SCOTT/TIGER IGNORE=Y TABLES=(EMP,DEPT) FULL=N
或 TABLES=(T1: P1,T1: P2),如果 T1 是分区表
USERID 必须是命令行中的第一个参数。
关键字     说明(默认)
----------------------------------------------
USERID     用户名/口令
FULL     导入整个文件 (N)
BUFFER     数据缓冲区大小
FROMUSER     所有人用户名列表
FILE     输入文件 (EXPDAT.DMP)
TOUSER     用户名列表
SHOW     只列出文件内容 (N)
TABLES     表名列表
IGNORE     忽略创建错误 (N)
RECORDLENGTH   IO 记录的长度
GRANTS     导入权限 (Y)
INCTYPE     增量导入类型
INDEXES     导入索引 (Y)
COMMIT     提交数组插入 (N)
ROWS     导入数据行 (Y)
PARFILE     参数文件名
LOG     屏幕输出的日志文件
CONSTRAINTS   导入限制 (Y)
DESTROY     覆盖表空间数据文件 (N)
INDEXFILE     将表/索引信息写入指定的文件
SKIP_UNUSABLE_INDEXES   跳过不可用索引的维护 (N)
ANALYZE     执行转储文件中的 ANALYZE 语句 (Y)
FEEDBACK     显示每 x 行 (0) 的进度
TOID_NOVALIDATE   跳过指定类型 id 的校验
FILESIZE     各转储文件的最大尺寸
RECALCULATE_STATISTICS 重新计算统计值 (N)
下列关键字仅用于可传输的表空间
TRANSPORT_TABLESPACE   导入可传输的表空间元数据 (N)
TABLESPACES   将要传输到数据库的表空间
DATAFILES     将要传输到数据库的数据文件
TTS_OWNERS     拥有可传输表空间集中数据的用户

-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------


//穿插一段之前在服务器上安装出错的一段处理方法
linux下安装oracle10g,在执行autorunner之前,执行xhost+   上次是报dispaly变量错误,所以才无法打开图形界面安装。
****************************************************************************************************************************************************************\

 在centos 5.5 32bit上安装Oracle 10g时,Oracle本身安装成功,但在创建数据库的时候发生了错误,错误信息为:

CODE:ORA-27102 "Out of Memory" 
//我们两个方法都用了。
************************************************************************************
方法一:

报那个错的确是因为内存太小,修改/etc/sysctl.conf的shmall,一般kernel.shmall的设置规律为:
kernel.shmall = 2097152    ---内存8G
kernel.shmall = 4194304    ---内存16G
kernel.shmall = 8388608    ---内存32G
我觉得你可以把这个值改成10g(kernel.shmall为2621440)或者12g(kernel.shmall为3145728)的试试,改了之后,执行:/sbin/sysctl -p  就可以了。
************************************************************************************
方法二:
行不行?我在51cto上看的有人说kernel.shmmax设置的太大了,那个不改,改这个,把这个改成2147483648

************************************************************************************
方法三:
shminfo_shmmax is an obsoletes tuneable, which is replaced by the following resource control project.max-shm-memory, which in turns defaults to 1/4 of physical memory if not set.

I would suggest

groupadd dba 
useradd -g dba -d ${ORACLE_HOME} -m -s /bin/bash oracle

change permissions etc on ORACLE_HOME and so on. 
then

projadd -U oracle -G dba -c 'Ora DB' -p 162 user.oracle 
projmod -sK 'project.max-shm-memory=(priv,48g,deny)' user.oracle


then log in as oracle and check the value via 
prctl -n project.max-shm-memory -i project user.oracle 
************************************************************************************


************************************************************************************ORA-27102 Out of Memory问题处理
************************************************************************************
chenfengwww | 15 四月, 2011 13:44

一般是SGA大小设置有关


[oracle@localhost trace]$ sqlplus / as sysdba

SQL*Plus: Release 11.1.0.6.0 - Production on Fri Apr 15 10:51:31 2011

Copyright (c) 1982, 2007, Oracle. All rights reserved.

Connected to an idle instance.

SQL> startup nomount
ORA-00845: MEMORY_TARGET not supported on this system


手动创建一个init参数文件

调整SGA参数大小

[oracle@localhost dbs]$ vi initrp.ora

spfile='/oracle/product/11.1.0/db_1/dbs/spfilelzccb.ora'
sga_max_size=2500000000
sga_target=2500000000


[oracle@localhost ~]$ sqlplus / as sysdba

SQL*Plus: Release 11.1.0.6.0 - Production on Fri Apr 15 11:42:01 2011

Copyright (c) 1982, 2007, Oracle. All rights reserved.

Connected to an idle instance.

SQL> startup nomount pfile=/oracle/product/11.1.0/db_1/dbs/initrp.ora
ORACLE instance started.
************************************************************************************

2011-09-07  mtouch db服务器宕机,机房帮忙启动之后启动db的全过程

[root@CMS2 ~]# su - oracle
[oracle@CMS2 ~]$ sqlplus /nolog
SQL*Plus: Release 10.2.0.1.0 - Production on Wed Sep 7 10:05:59 2011
Copyright (c) 1982, 2005, Oracle.  All rights reserved.
SQL> conn /as sysdba
Connected to an idle instance.
SQL> startup
ORACLE instance started.
Total System Global Area  213909504 bytes
Fixed Size      1218556 bytes
Variable Size     96471044 bytes
Database Buffers   109051904 bytes
Redo Buffers      7168000 bytes
Database mounted.
Database opened.
SQL> exit
Disconnected from Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
With the Partitioning, OLAP and Data Mining options
[oracle@CMS2 ~]$ /opt/ap
apache/ app/    
[oracle@CMS2 ~]$ /opt/app/oracle/
admin/               flash_recovery_area/ oradata/             oraInventory/        product/
[oracle@CMS2 ~]$ /opt/app/oracle/product/10.2.0/db_1/
admin/               demo/                ldap/                opmn/                root.sh
assistants/          diagnostics/         lib/                 oracore/             root.sh.old
bin/                 flash_recovery_area/ log/                 oradata/             slax/
cdata/               has/                 md/                  ord/                 sqlj/
cfgtoollogs/         hs/                  mesg/                oui/                 sqlplus/
clone/               install/             mgw/                 owm/                 srvm/
CMS2_orcl/           inventory/           network/             perl/                sysman/
config/              javavm/              nls/                 plsql/               uix/
crs/                 jdbc/                oc4j/                precomp/             wwg/
css/                 jdk/                 odbc/                racg/                xdk/
ctx/                 jlib/                olap/                rdbms/               
dbs/                 jre/                 OPatch/              relnotes/            
[oracle@CMS2 ~]$ /opt/app/oracle/product/10.2.0/db_1/bin/lsnrctl start
LSNRCTL for Linux: Version 10.2.0.1.0 - Production on 07-SEP-2011 10:07:53
Copyright (c) 1991, 2005, Oracle.  All rights reserved.
Starting /opt/app/oracle/product/10.2.0/db_1/bin/tnslsnr: please wait...
TNSLSNR for Linux: Version 10.2.0.1.0 - Production
System parameter file is /opt/app/oracle/product/10.2.0/db_1/network/admin/listener.ora
Log messages written to /opt/app/oracle/product/10.2.0/db_1/network/log/listener.log
Listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=CMS2)(PORT=1521)))
Listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC0)))
Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=CMS2)(PORT=1521)))
STATUS of the LISTENER
------------------------
Alias                     LISTENER
Version                   TNSLSNR for Linux: Version 10.2.0.1.0 - Production
Start Date                07-SEP-2011 10:07:53
Uptime                    0 days 0 hr. 0 min. 0 sec
Trace Level               off
Security                  ON: Local OS Authentication
SNMP                      OFF
Listener Parameter File   /opt/app/oracle/product/10.2.0/db_1/network/admin/listener.ora
Listener Log File         /opt/app/oracle/product/10.2.0/db_1/network/log/listener.log
Listening Endpoints Summary...
  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=CMS2)(PORT=1521)))
  (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC0)))
Services Summary...
Service "PL***tProc" has 1 instance(s).
  Instance "PL***tProc", status UNKNOWN, has 1 handler(s) for this service...
The command completed successfully

------------------------------------------------------------------------------------
oracle备份

1、如果备份本机的数据库,比如本地数据库实例名为:orcl 
那就使用:exp  file=bak.dmp log=bak.log buffer=10240
2、如果是备份另外一台Oralce,要分两步
(1)、配置datasource  比如本地服务器A的IP是192.168.1.101,要备份的服务器B的IP是192.168.1.102,实例名为:orcl 在oracle的tnsnames.ora中配置datasource
db102 =        这个名称随便起
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.102)(PORT = 1521))    这里为机器B的地址及数据库端口号
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME =orcl)    这个名称为机器B 数据库SID的值
    )
  )
测试数据库连通性,在机器A如下;
[oracle@localhost admin]$ tnsping db102
显示如下;
TNS Ping Utility for Linux: Version 10.2.0.1.0 - Production . 04-JAN-2009 16:53:23
Copyright (c) 1997, 2005, Oracle.  All rights reserved.
Used parameter files:
/home/oracle/oracle/product/10.2.0/network/admin/sqlnet.ora

Used TNSNAMES adapter to resolve the alias
Attempting to contact (DE.ION = (ADDRESS = (PROTOCOL = TCP)(HOST = 61.172.197.197)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = jjtdb)))
OK (10 msec)
测试通过
(2)写脚本 exp  file=bak.dmp log=bak.log buffer=10240
------------------------------------------------------------------------------------------

 

 -------------------------------------------------------

 -------------------------------------------------------

oracle 备份脚本,短小精悍,一切问题都说明了!  2011-9-13 凯哥

 ------------------------------------------------------- ------------------------------------------------------- -------------------------------------------------------

脚本文件:
backup.sh
rq=`date '+%Y%m%d%H%M'`
su - oracle -c "exp zjhk/zjhk_123 owner=zjhk file=/home/oracle/zjhk_$rq.dmp"

#写入crontab 

 ------------------------------------------------------- ------------------------------------------------------- -------------------------------------------------------

备份过程

-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------

sqlplus /nolog
conn zixunuser/zixunpassword;
connnected
quit

[oracle@testcms admin]$ exp zixunuser/zixunpassword file=/home/oracle/dbbackyk/zixundb-`date +%F`.dmp

Export: Release 10.2.0.1.0 - Production on Wed Sep 14 14:32:14 2011

Copyright (c) 1982, 2005, Oracle.  All rights reserved.


Connected to: Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
With the Partitioning, OLAP and Data Mining options
Export done in US7ASCII character set and AL16UTF16 NCHAR character set
server uses ZHS16GBK character set (possible charset conversion)

About to export specified users ...
. exporting pre-schema procedural objects and actions
. exporting foreign function library names for user ZIXUNUSER 
. exporting PUBLIC type synonyms
. exporting private type synonyms
. exporting object type definitions for user ZIXUNUSER 
About to export ZIXUNUSER's objects ...
. exporting database links
. exporting sequence numbers
. exporting cluster definitions
. about to export ZIXUNUSER's tables via Conventional Path ...
. . exporting table                         TADMIN          0 rows exported
EXP-00091: Exporting questionable statistics.
. . exporting table                          TCIMG         14 rows exported
EXP-00091: Exporting questionable statistics.
. . exporting table                   TINFORMATION       1969 rows exported
EXP-00091: Exporting questionable statistics.
EXP-00091: Exporting questionable statistics.
EXP-00091: Exporting questionable statistics.
EXP-00091: Exporting questionable statistics.
. . exporting table                       TPLAYLOG        159 rows exported
EXP-00091: Exporting questionable statistics.
. . exporting table               TPRECOMMENDATION          0 rows exported
EXP-00091: Exporting questionable statistics.
. . exporting table                       TPROGRAM          7 rows exported
EXP-00091: Exporting questionable statistics.
. . exporting table                  TROLE_PURVIEW        592 rows exported
EXP-00091: Exporting questionable statistics.
. . exporting table                          TUSER          1 rows exported
EXP-00091: Exporting questionable statistics.
. exporting synonyms
. exporting views
. exporting stored procedures
. exporting operators
. exporting referential integrity constraints
. exporting triggers
. exporting indextypes
. exporting bitmap, functional and extensible indexes
. exporting posttables actions
. exporting materialized views
. exporting snapshot logs
. exporting job queues
. exporting refresh groups and children
. exporting dimensions
. exporting post-schema procedural objects and actions
. exporting statistics
Export terminated successfully with warnings.
[oracle@testcms admin]$ 
-------------------------------------------------------------------------------------------


 

 

阅读(1183) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~