扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
Me 的机器是这样的:IBM AIX 5.3 1600s ,2G内存 ,给我使用的ORACLE空间5G 。(公司对我太好了)
创新互联建站-专业网站定制、快速模板网站建设、高性价比和顺网站开发、企业建站全套包干低至880元,成熟完善的模板库,直接使用。一站式和顺网站制作公司更省心,省钱,快速模板网站建设找我们,业务覆盖和顺地区。费用合理售后完善,十载实体公司更值得信赖。
So下载的版本就是Oracle Database 10g Release 2 (10.2.0.1.0) for AIX5L(最好是release版本)
注:由于给我的这台Server需要telnet登陆,所以Down下来的oracle 安装包没办法用putty传过去,所以只有想其他的办法。(原本以为字符界面的快,不用那么多步骤。可是。。。。。。。)
上网搜索一下,知道在Windows 下有一个强大的命令---------ftp。(介绍一下?)
如何开启ftp相信大家都会吧!(ftp 192.168.*.*) 所以只介绍如何传输哦。
FTP bin
FTP lcd $PATH (我的$PATH= D:\cyaln\study_source\oracle)
FTP put 10gr2_aix5l64_database.cpio.gz
(注:1 . 这样传输过去的时候,文件将存放在/HOME/$ID目录下。
2 . 一定要有足够大的空间来存放该文件哦!我就因为目录空间不够的问题导致ftp 传输失败。)
FTP by (传送成功以后一定要跟FTP说再见哦! ^-^)
这样,我们的AIX机器上就有了我们的oracle安装压缩包。(这也是工程一件哦^-^)
$gunzip 10gr2_aix5l64_database.cpio.gz
$cpio -idcmv 10gr2_aix5l64_database.cpio.gz
做完以上步骤就会生成一个Disk1的目录。
真正的实战开始了(注意注意。。。。。。。。。。。。。。。。。。。。。。。。。。。)
一、确认系统硬件环境
Oracle10g最低安装要求:
512M物理内存、MIN(RAM*2,2G) SWAP空间、400M /TMP空间、4G Oracle目录空间、64位体系结构
下面是确认过程:
1、确认内存大小(1G)
localhost /usr/sbin/lsattr -E -l sys0 -a realmem
realmem 1048576 Amount of usable physical memory in Kbytes False
这里oracle10g安装文档写错了,将“sys0(数字0)”写成了“sysO(字母O)”。
2、确认SWAP空间,512M太小了,加到2G。
localhost /usr/sbin/lsps -a
Page Space Physical Volume Volume Group Size %Used Active Auto Type
hd6 hdisk0 rootvg 512MB 12 yes yes lv
3、确认/TMP和Oracle目录空间(其中Oracle10g放在/data1下):
localhost df -k
Filesystem 1024-blocks Free %Used Iused %Iused Mounted on
/dev/hd4 32768 14676 56% 2176 14% /
/dev/hd2 1933312 516400 74% 35398 8% /usr
/dev/hd9var 65536 43496 34% 623 4% /var
/dev/hd3 917504 691884 25% 1034 1% /tmp
/dev/hd1 10911744 4097144 63% 18636 1% /home
/proc - - - - - /proc
/dev/hd10opt 32768 23328 29% 362 5% /opt
/dev/lv00 2097152 937572 56% 708 1% /ptf
/dev/data1lv 13107200 10559980 20% 2735 1% /data1
4、确认系统结构
localhost /usr/bin/getconf HARDWARE_BITMODE
64
5、我们可以通过下面的命令来确认系统CPU个数和主频:
# lsdev -C |grep proc
proc0 Available 00-00 Processor
proc1 Available 00-01 Processor
# lsattr -E -l proc0
frequency 752010000 Processor Speed False
state enable Processor state False
type PowerPC_RS64-III Processor type False
# lsattr -E -l proc1
frequency 752010000 Processor Speed False
state enable Processor state False
type PowerPC_RS64-III Processor type False
二、确认系统软件环境
1、要求AIX必须是5.2 LEVEL 1以上(含LEVEL 1):
localhost oslevel -r
5200-01
2、要求安装了这些FILESETS:
localhost lslpp -l bos.adt.base bos.adt.lib bos.adt.libm
bos.perf.perfstat bos.perf.libperfstat bos.perf.proctools
Fileset Level State Description
----------------------------------------------------------------------------
Path: /usr/lib/objrepos
bos.adt.base 5.2.0.11 APPLIED Base Application Development
Toolkit
bos.adt.lib 5.2.0.10 APPLIED Base Application Development
Libraries
bos.adt.libm 5.2.0.13 APPLIED Base Application Development
Math Library
bos.perf.libperfstat 5.2.0.12 APPLIED Performance Statistics Library
Interface
bos.perf.perfstat 5.2.0.12 APPLIED Performance Statistics
Interface
Path: /etc/objrepos
bos.perf.perfstat 5.2.0.0 COMMITTED Performance Statistics
Interface
lslpp: 0504-132 Fileset bos.perf.proctools not installed.
可以看到bos.perf.proctools没有安装,用smitty安装上即可。现在查看确认:
localhost lslpp -l bos.perf.proctools
Fileset Level State Description
----------------------------------------------------------------------------
Path: /usr/lib/objrepos
bos.perf.proctools 5.2.0.11 APPLIED Proc Filesystem Tools
3、要求安装了APARs(Authorized Problem Analysis Reports):
localhost /usr/sbin/instfix -i -k "IY43980 IY44810 IY45462 IY45707
IY46214 IY46605 IY48525 IY51801"
All filesets for IY43980 were found.
All filesets for IY44810 were found.
All filesets for IY45462 were found.
All filesets for IY45707 were found.
All filesets for IY46214 were found.
All filesets for IY46605 were found.
There was no data for IY48525 in the fix database.
There was no data for IY51801 in the fix database.
可以看到IY48525和IY51801没有安装,我们可以从网上下载它们然后安装上,这里是下载地址:
但实际上,这两个补丁是针对SDK1.4的, 如果不用1.4完全可以不理。
4、创建Oracle10g用户和组,并创建相关目录(这一步是最关键的)
注意哦,认真操作每一个步骤哦 ^-^ ^-^ ^-^ ^-^ ^-^
useradd - g oinstall –G dba –d /home/oracle –s /usr/bin/bash –m oracle
passwd oracle
完成以后:用oracle用户进行登陆修改 .profile
su - oracle
4.1.设置系统环境变量:(一般情况是在/HOME/ORACLE)
ORACLE_HOME=/home/oracle/product/10.2.0
ORACLE_BASE=/home/oracle
4.2.系统规划:(这里用TEST)
实例名称ORACLE_SID=test
数据库名称:test
4.3.手工创建如下目录:
/home/oracle/admin/test/cdump
/home/oracle/admin/test/bdump
/home/oracle/admin/test/udump
/home/oracle/admin/test/pfile
/home/oracle/oradata/test
附:我的.profile文件
if [ -s "$MAIL" ] # This is at Shell startup. In normal
then echo "$MAILMSG" # operation, the Shell checks
fi # periodically.
# .bash_profile
# Get the aliases and functions
if [ -f ~/.bashrc ]; then
. ~/.bashrc
fi
# User specific environment and startup programs
ORACLE_HOME=/home/oracle/product/10.2.0;
export ORACLE_HOME
export ORACLE_BASE=/home/oracle
export ORACLE_SID=test
unset USERNAME
umask 022
PATH=$PATHHOME/binORACLE_HOME/bin;
export PATH
5 . 编辑Response 文件
这一步骤是字符界面装oracle的关键步骤
到oracle 10g的安装目录下编辑response文件
$su – oracle
$cd /$HOME/$ID/Disk1/response
可以看到oracle准备了6个response文件,实际上这些文件就是用来安装和配置oracle时的模板,分别是custom.rsp dbca.rsp emca.rsp enterprise.rsp netca.rsp standard.rsp在这里挑了一个简单的response文件 enterprise.rsp,也可以根据实际情况去选用编辑其他几个response文件。
$cp custom.rsp myinst.rsp
$vi myinst.rsp
在myinst.rsp的最前面有一段说明,应该仔细看看,特别要注意它定义的几个数据变量格式的写法,如下:
Type Example
String "Sample Value"
Boolean True or False
Number 1000
StringList {"String value 1","String Value 2"}
其后都是安装oracle时所需要定义的变量,其值有三种情况,一是已经有默认值的,几乎可以不用管它。二是值等于的,这种变量是非图形界面安装10g所必需要指定的变量,一定要修改成合适的值,第三种变量的值等于,说明它的值是和别的变量值关联的,也可以不用管它。需要把第二类变量的值逐个修改。
更改情况如下,可根据实际情况修改其它变量的值:
ORACLE_HOME="/home/oracle/product/10.2.0"
ORACLE_HOME_NAME="TEST"
s_nameForDBAGrp="dba"
s_nameForOPERGrp="dba"
SHOW_DATABASE_CONFIGURATION_PAGE=false
b_createStarterDB=false (不创建数据库)
SHOW_DATABASE_OPTIONS_PAGE=false
s_dbCharacterSet="ZHS16GBK"
s_globalDBName="test"
s_dbSid="test"
SHOW_DATABASE_MANAGEMENT_PAGE=false
SHOW_DATABASE_FILE_STORAGE_OPTION_PAGE=false
SHOW_BACKUP_RECOVERY_OPTION_PAGE=false
SHOW_SCHEMA_PASSWORDS_PAGE=false
改完后存盘退出
三、运行安装oracle
1、以root执行# ./rootpre.sh
2、转到oracle 10g安装介质目录下,用oracle用户运行runInstaller
$cd @/Disk1/
$./runInstaller –silent –responseFile @/Disk1/response/myinst.rsp
“@”表示:Disk的父目录路径
这样Oracle 10g就开始安装了
安装进程的步骤如下:
a.检测temp 和swap分区的大小
b.查系统补丁是否满足需要
c.到response文件中读取信息
d.copy 相关文件
e.link and setup
f.提示运行root.sh,根据提示,用root用户去运行root.sh就行了
一般出错的地方容易在b、c步骤,如果是系统补丁没打全,则根据提示把系统补丁打好,如果是在c的地方出错,说明你的response文件信息有误,需要重新修改response文件。
至此,不起图形界面安装oracle 10g就完成了
四、后续工作
建数据库。
此次安装中并未建库,关于用脚本建库的方法,和以前版本的oracle类似,这里不再具体说明了。
众所周知,一般操作系统会提供定时执行任务的方法,例如:Unix平台上提供了让系统定时执行任务的命令Crontab。但是,对于某些需求,例如:一些对数据库表的操作,最为典型的是证券交易所每日收盘后的结算,它涉及大量的数据库表操作,如果仍然利用操作系统去定时执行,不仅需要大量的编程工作,而且还会出现用户不一致等运行错误,甚至导致程序无法执行。
一、分析问题
事实上,对于以上需求,我们可以利用数据库本身拥有的功能Job Queue(任务队列管理器)去实现。任务队列管理器允许用户提前调度和安排某一任务,使其能在指定的时间点或时间段内自动执行一次或多次,由于任务在数据库中被执行,所以执行效率很高。
任务队列管理器允许我们定制任务的执行时间,并提供了灵活的处理方式,还可以通过配置,安排任务在系统用户访问量少的时段内执行,极大地提高了工作效率。例如,对于数据库日常的备份、更新、删除和复制等耗时长、重复性强的工作,我们就可以利用任务队列管理器去自动执行以减少工作量。
目前,拥有此项功能的数据库有许多,最有代表性的是SQL Server 7.0、Oracle 8.0.5等。但是,要让任务队列管理器工作,还需要我们加以配置才能实现。SQL Server的功能配置是在一个图形化界面(GUI)中实现的,非常简单。利用OEM客户端管理工具,Oracle的配置也可以在一个图形界面中完成。然而大多数的用户更习惯于命令行的方式去操纵数据库。本文介绍如何通过命令行实现这种配置。
二、实现步骤
1.确保Oracle的工作模式允许启动任务队列管理器
Oracle定时执行“Job Queue”的后台程序是SNP进程,而要启动SNP进程,首先要确保整个系统的模式是可以启动SNP进程的,这需要以DBA的身份去执行如下命令:
svrmgrl alter system enable restricted session;
或sql alter system disenable restricted session;
利用如上命令更改系统的会话方式为disenable restricted,为SNP的启动创造条件。
2.确保Oracle的系统已经配置了任务队列管理器的启动参数
SNP的启动参数位于Oracle的初始化文件中,该文件放在$ORACLE_HOME/dbs路径下,如果Oracle的SID是myora8的话,则初始化文件就是initmyora8.ora,在文件中对SNP启动参数的描述部分如下:
job_queue_process=n
job_queue_interval=N
第一行定义SNP进程的启动个数为n。系统缺省值为0,正常定义范围为0~36,根据任务的多少,可以配置不同的数值。
第二行定义系统每隔N秒唤醒该进程一次。系统缺省值为60秒,正常范围为1~3600秒。事实上,该进程执行完当前任务后,就进入睡眠状态,睡眠一段时间后,由系统的总控负责将其唤醒。
如果该文件中没有上面两行,请按照如上配置添加。配置完成后,需要重新启动数据库,使其生效。注意:如果任务要求执行的间隔很短的话,N的配置也要相应地小一点。
3.将任务加入到数据库的任务队列中
调用Oracle的dbms_job包中的存储过程,将任务加入到任务队列中:
dbms_job.submit( job out binary_integer,
what in archar2,
next_date in date,
interval in varchar2,
no_parse in boolean)
其中:
●job:输出变量,是此任务在任务队列中的编号;
●what:执行的任务的名称及其输入参数;
●next_date:任务执行的时间;
●interval:任务执行的时间间隔。
下面详细讨论一下dbms_job.submit中的参数interval。严格地讲,interval是指上一次执行结束到下一次开始执行的时间间隔,当interval设置为null时,该job执行结束后,就被从队列中删除。假如我们需要该job周期性地执行,则要用‘sysdate+m’表示。
将任务加入到任务队列之前,要确定执行任务的数据库用户,若用户是scott, 则需要确保该用户拥有执行包dbms_job的权限;若没有,需要以DBA的身份将权利授予scott用户:
svrmgrl grant execute on dbms_job to scott;
4.将要执行的任务写成存储过程或其他的数据库可执行的pl/sql程序段
例如,我们已经建立了一个存储过程,其名称为my_job,在sql/plus中以scott用户身份登录,执行如下命令:
sql variable n number;
sql begin
dbms_job.submit(:n‘my_job;’,sysdate,
‘sysdate+1/360’);
commit;
end;
/
系统提示执行成功。
Sql print :n;
系统打印此任务的编号,例如结果为300。
如上,我们创建了一个每隔4分钟执行一次的任务号为300的任务。可以通过Oracle提供的数据字典user_jobs察看该任务的执行情况:
sql select job,next_date,next_sec,failures,broken from user_jobs;
执行结果如下:
job next_date next_sec failures broken
300 2000/10/10 11:45:15 0 N
这表示任务号为300的任务,下一次将在2000/10/10 11:45:15执行,此任务的执行失败记录为0次。注意:当执行job出现错误时,Oracle将其记录在日志里,失败次数每次自动加1。当执行失败次数达到16时,Oracle就将该job标志为broken。此后,Oracle不再继续执行它,直到用户调用过程dbms_job.broken,重新设置为not broken,或强制调用dbms_job.run来重新执行它。
除了以上我们讨论的submit存储过程之外,Oracle还提供了其他许多存储过程来操作任务。例如:dbms_job.change 、 dbms_job.what、dbms_job.interval可以用来修改提交的任务。要想删除该任务,只需运行dbms_job.remove(n)即可,其中n为任务号。
Oracle执行外部文件:
c:sqlplus
user/pwd@db
sql@new.sql
执行多个sql文件:
1.把所有的文件都放在同一个目录下,然后在命令行里执行命令:
c:dir/b
d:/1.sql
会把所有的sql文件名都输出到一个sql文件中。
2.用UltraEdit打开生成的sql文件,alt+C切换到column
mode,给所有的行前都添加一个"@",保存。
3.在sqlplus中执行"@d:/1.sql"
如何避免''字符:
sql中可以传递参数,但有时需要插入'',例:
SQL
select
'hello'
v
from
dual;
输入
hello
的值:
hello
原值
1:
select
'hello'
v
from
dual
新值
1:
select
'hello'
v
from
dual
v
-----
hello
可以使用如下方法避免:
A:
SQL
select
chr(38)
||
'hello'
v
from
dual;
V
------
hello
B:
SQL
set
define
off
SQL
select
'hello'
v
from
dual;
V
------
hello
1,非集群下 Windows环境下数据库
conn scott/123@127.0.0.1:1521/orcl
conn scott/123456@(DESCRIPTION =(ADDRESS_LIST =(ADDRESS =
(PROTOCOL = TCP)(HOST = 127.0.0.1)(PORT = 1521)))(CONNECT_DATA =
(SERVER = DEDICATED)(SERVICE_NAME = orcl)))
Linux环境下数据库
conn scott/123@(DESCRIPTION =(ADDRESS_LIST =(ADDRESS = (PROTOCOL = TCP)(HOST
= 127.0.0.1)(PORT = 1521)))(CONNECT_DATA =(SERVER = DEDICATED)(SERVICE_NAME =
orcl)))
2,集群下连接
conn scott/123@(DESCRIPTION=(ADDRESS_LIST=(LOAD_BALANCE = yes)(FAILOVER = on)
(ADDRESS=(PROTOCOL=TCP)(HOST=127.0.0.1)(PORT=1521))(ADDRESS=
(PROTOCOL=TCP)(HOST=127.0.0.2)(PORT=1521)))(CONNECT_DATA=(SERVER=default)
(SERVICE_NAME=orcl)))
扩展资料
在命令行中登录oracle数据库:
sqlplus username/password 如:普通用户登录 sqlplus scott/tiger
sqlplus username/password as sysdba 如:sqlplus sys/admin as sysdba
sqlplus username/password@net_service_name 如: sqlplus scott/tiger@orcl
sqlplus username/password@//host:port/sid
参考资料:百度百科 - Oracle数据库
如果指的是windows下的ORACLE这个问题其实很简单的。
ORACLE的起动、停止实际上就是服务的起动和停止。
去控制面版中的 服务 中,找到对应的服务,查看服务名,然后在命令窗中键入以下指令:
net stop OracleXXXXTNSListener
net stop OracleXXXX
你的OracleXXXXTNSListener监听就停了,然后你的OracleXXXX服务也停了,那么,你的OR数据库也就完全停下来了。
要起动,就输入下面的指令:
net start OracleXXXX
net start OracleXXXXTNSListener
注意,先起动OR库,后起动监听。(反过来好象是不行的,你自个试)。
最后,如果你是需要先停,再重起,那就把这四行写到一个批处理中,一次性执行就好。
1:在oracle后台管理界面输入语句查找system用户的密码。
具体命令为输入:Select username,password
from
dba_users
where
username=‘SYSTEM’,并将查到的密码记录。
2:修改企业oracle数据库system用户密码,并测试修改的密码是否能够正常登录。语句为:alter
user
system identified
by
oracle
;connect
system/oracle
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流