- ·上一篇教程:系统配置文件总结--UNIX
- ·下一篇教程:Proftpd在redhat8.0上的安装配置--PROFTPD
一点点技术资料
unix/database资料记录
AIX:
一:指令
1.oslevel 列出操作系统版本号
2.lsvg – o 查看vg列表
3.lsvg –L rootvg 查看rootvg的使用情况
4. smitty mkvg 创建volume group
lsvg 查看vg
smitty mklv 创建logical volume
smitty jfs 创建文件系统
5.errpt 查看系统错误列出所有错误id
errpt –j id号 查看错误详细信息
6,在aix系统下#set –o vi 然后可以用esc + k 来翻上一条命令
7,运行"refresh -s syslogd"命令刷新syslogd 后台程序
运行“refresh -s inetd”命令刷新inetd后台程序
8,问题 如何查看系统上次启动的log?
解答 # alog -o -t boot
9,问题 如果想要立刻断掉一个已经login的用户,如何做
解答 可使用命令 fuser -k <用户的主目录>
如:fuser -k /home/guest
10,问题 如何使用errdemon客户化系统错误日志文件?
解答 首先列出系统错误日志文件当前配置数据:
#/usr/lib/errdemon -l
Error Log Attributes
--------------------------------------------
Log File /var/adm/ras/errlog
Log Size 1048576 bytes
Memory Buffer Size 8192 bytes
如果希望改变系统错误日志文件的大小, 输入:
#/usr/lib/errdemon -s 2000000
如果希望改变系统错误日志文件buffer的大小, 输入:
#/usr/lib/errdemon -B 16384
11,#stopsrc –s snmpd
#startsrc –s snmpd
12, 问题 在AIX 4.x如何清除挂起的tty
解答 为了说明方便,下面的例子假设挂起的tty端口为tty0.
1.确定当前挂起的tty正在操作的进程:
ps -ef | grep tty0
该命令假设返回内容如下:
root 12345 1 0 Aug 29 0 /path/program_name
进程ID (PID) 是"12345". 杀掉该进程:
kill -9 12345
再次运行ps -ef | grep tty0 命令去查看该进程是否被杀掉。
不要使用“-9”的选项去杀掉slattach进程,因为它可能导致AIX操作系统挂起。
注意:如果进程是“getty”, 使用下面命令去杀掉进程:
pdisable tty0
如果上面命令不能成功的杀掉进程,而tty仍然是挂起的,可以使用第二步。
2. 执行下面的命令:
fuser -k /dev/tty0
该命令将杀掉运行在此端口的所有进程,并且显示其PID (进程 ID).
如果上面命令不能成功的杀掉进程,而tty仍然是挂起的,可以使用第三步。
3. 在被挂起的终端的键盘上,键入“Ctrl+Q”. 如果tty仍然挂起,使用第四步。
4. 物理的断开连接端口的设备(连线). 在某些情况下可以释放端口.
注意:前面的一些命令也许不会生效并且报”设备忙“的错误。这是由于一些进程正运行在tty上。如果上面的步骤仍不能释放挂起的tty,最后可以通过重起AIX释放内核去清除此进程。
二:其他
1. 对于经典rs6000机器(对基于pci的rs6000则需要在启动时按f5或 5 从光驱引导),在安装过程中将钥匙调到services位置进入维护状态以便从光驱引导,等安装完重起是将钥匙调到normal或ok位置。
2. 在sqlplus提示符下用!加系统命令执行命令即可
如sqlplus> !hostname
sqlplus> test250
3. A: 数据库名------DB_NAME 写入pfile文件中,不得修改 (服务名services-name一般和数据库名一致)
select name from v$database
B: 数据库实例名------INSTANCE_NAME 写入pfile,可以被修改,用于与操作系统联系 select instance_name from v$instance;
数据库实例名是oracle数据库的一个参数,用instance_name表示,
而ORACLE_SID 是操作系统上识别oracle的参数用ORACLE_SID表示,
实际上他们的值是一致的
4. 修改用户口令方法一:grant connect to sys identified by passwordxxxxx;
修改用户口令方法二:alter user sys identified by passwordxxxxx;
修改用户口令方法三:password sys
5.为确保数据库不采用操作系统认证登陆而采用oracle认证登陆(即不可以c:>sqlplus “/ as sysdba” 方式,而必须要密码)
修改步骤一:修改参数文件中REMOTE_LOGIN_PASSWORDFILE=EXCLUSIVE或SHARED
修改步骤二:修改……/network/admin/sqlnet.ora文件
增加 : SQLNET.AUTHENTICATION_SERVICES=(NTS)
6.alter session set nls_calendar=’Japanese Imperial’
参数:nls_currency 用于货币
nls_date_format 用于设置日期格式
7.设置sql中每行显示宽度sql> set linesize 1000 (可显示1000个字母)
设置sql中显示查询用时间sql> set timing on
8.修改数据文件大小
A>查询数据文件:select file_id,bytes,file_name from dba_data_files;
B>修改为100m: alter database datafile ‘f:oracleoradataora9users01.dbf’ resize 100m;
9.关于归档
A>查询数据库使用的log记录模式:sql> select log_mode from v$database;
或sql>archive log list
B>
10.关于备份
A:完全脱机备份,需要备份的文件可以用如下sql语句查询
A1:sql> select file_name from dba_data_files;
A2: sql>select * form v$logfile;
A3: sql>select * from v$controlfile;
关闭数据库后,备份如上语句查询到的全部文件
11. 怎么查看数据库版本
[A]select * from v$version
包含版本信息,核心版本信息,位数信息(32位或64位)等
至于位数信息,在linux/unix平台上,可以通过file查看,如
file $ORACLE_HOME/bin/oracle
12. 怎么查看数据库参数
[A]show parameter 参数名
如通过show parameter spfile可以查看9i是否使用spfile文件
或者select * from v$parameter
除了这部分参数,Oracle还有大量隐含参数,可以通过如下语句查看:
SELECT NAME
,VALUE
,decode(isdefault, 'TRUE','Y','N') as "Default"
,decode(ISEM,'TRUE','Y','N') as SesMod
,decode(ISYM,'IMMEDIATE', 'I',
'DEFERRED', 'D',
'FALSE', 'N') as SysMod
,decode(IMOD,'MODIFIED','U',
'SYS_MODIFIED','S','N') as Modified
,decode(IADJ,'TRUE','Y','N') as Adjusted
,description
FROM ( --GV$SYSTEM_PARAMETER
SELECT x.inst_id as instance
,x.indx+1
,ksppinm as NAME
,ksppity
,ksppstvl as VALUE
,ksppstdf as isdefault
,decode(bitand(ksppiflg/256,1),1,'TRUE','FALSE') as ISEM
,decode(bitand(ksppiflg/65536,3),
1,'IMMEDIATE',2,'DEFERRED','FALSE') as ISYM
,decode(bitand(ksppstvf,7),1,'MODIFIED','FALSE') as IMOD
,decode(bitand(ksppstvf,2),2,'TRUE','FALSE') as IADJ
,ksppdesc as DESCRIPTION
FROM x$ksppi x
,x$ksppsv y
WHERE x.indx = y.indx
AND substr(ksppinm,1,1) = '_'
AND x.inst_id = USERENV('Instance')
)
ORDER BY NAME
13. 怎么样查看数据库字符集
[A]数据库服务器字符集select * from nls_database_parameters,其来源于props$,是表示数据库的字符集。
客户端字符集环境select * from nls_instance_parameters,其来源于v$parameter,
表示客户端的字符集的设置,可能是参数文件,环境变量或者是注册表
会话字符集环境 select * from nls_session_parameters,其来源于v$nls_parameters,表示会话自己的设置,可能是会话的环境变量或者是alter session完成,如果会话没有特殊的设置,将与nls_instance_parameters一致。
客户端的字符集要求与服务器一致,才能正确显示数据库的非Ascii字符。如果多个设置存在的时候,alter session>环境变量>注册表>参数文件
字符集要求一致,但是语言设置却可以不同,语言设置建议用英文。如字符集是zhs16gbk,则nls_lang可以是American_America.zhs16gbk
14. 怎么样修改字符集
[A]8i以上版本可以通过alter database来修改字符集,但也只限于子集到超集,不建议修改props$表,将可能导致严重错误。
Startup nomount;
Alter database mount exclusive;
Alter system enable restricted session;
Alter system set job_queue_process=0;
Alter database open;
Alter database character set zhs16gbk;
15. 怎么样修改表的列名
[A]9i以上版本可以采用rname命令
ALTER TABLE UserName.TabName
RENAME COLUMN SourceColumn TO DestColumn
9i以下版本可以采用create table …… as select * from SourceTable的方式。
另外,8i以上可以支持删除列了
ALTER TABLE UserName.TabName
SET UNUSED (ColumnName) CASCADE CONSTRAINTS
ALTER TABLE UserName.TabName
DROP (ColumnName) CASCADE CONSTRAINTS
16. 如何移动数据文件
[A]1、关闭数据库,利用os拷贝
a.shutdown immediate关闭数据库
b.在os下拷贝数据文件到新的地点
c.Startup mount 启动到mount下
d.Alter database rename datafile '老文件' to '新文件';
e.Alter database open; 打开数据库
2





