DB/Linux常用命令操作笔记


DB/Linux常用命令操作笔记
 
1         UserGroup
/etc/passwd : username:passwd:uid:gid::homedir:shell
 
密码映射在/etc/shadow,一个用户可属于多个用户组,第五个字段为用户名全称(可选)
 
/etc/group : groupname:passwd:gid:userlist
 
用户列表可选,用“,”分割
 
2         AddUser&Group
●      修改文件
more /etc/passwd| grep oracle  cat /etc/group|grep uid
 
修改 passwd ,添加用户记录,不能让uid重复;
 
执行 pwconv ,让passwd和shadow同步;
 
修改 group 添加组
 
运行 grpconv 来同步 group和shadow同步;
 
创建用户家目录,把用户的启动文件也复制进去;另外还需要把etc/skel 目录下的.*隐藏文件复制过去:cp -R /etc/skel//home/user ;
 
改变新增用户的属主和权限: chown -R user:group /home/user;-R:应用到目录中的所有文件?
 
设置新增用户密码:passwd username
 
●      通过命令
1)       mkgroup groupname
 
2)       groupadd
 
groupadd -g uid groupname
 
3)       mkuser
 
mkduer  pgrp=username home=diractory shell=/usr/bin/ksh  id=uid   username
 
4)       useradd
 
              useradd  -u 1002  -g  group -G  group01 -d  /home/user  -m user
 
useradd  -d /opt/oracle  -m  -g  dba  -G oinstall -s  /bin/bash   oracle
 
用户的缺省工作目录是/home/username,可以-d指定其他目录为其工作目录;
 
用户的缺省uid从500后顺序增加,可以-u指定uid;
 
不指定用户所属的组,会生成一个与用户名同名的工作组,也可以通过-g指定
 
5)       ld 、 finge 查看用户信息
 
6)       ls -dl $HOME 显示目录的属主和属组
 
7)       Usermod
 
修改用户登录名 Usermod -l newname oldname;
 
修改用户目录 usermod -d newdir user;
 
添加用户到组 usermod -g group user;小G 大g的区别
 
8)       Gpasswd
 
改变组成员,只有root和组管理员有权限
 
添加:Gpasswd -a user group       删除:Gpasswd-d user group
 
9)       Groupmod
 
修改组名:groupmod -n oldname newname
 
10)    Rmuser -r username
 
11)    Userdel
 
删除用户,同时删除工作目录 userdel -rf user
 
12)    Rmgroup -rgroupname
 
13)    Groupdel
 
3         Linux 常用命令
压缩解压:
 
tar -cvf - file | gzip -cf > file.tar.gz
 
gzip -dc file.tar.gz | tar -xvf -
 
gunzip 直接解压gz包  
 
unzip(zip) 直接解压(缩)zip包
 
mv origfile destfile 剪切源文件中内容到目标文件夹
 
find . -name "*.log" | xargs  rm
 
|awk '{print $2}'|xargs kill -9  或|awk '{print "kill -9",$2}'
 
df -h ;fdisk -l  显示磁盘空间
 
du –lh
 
du –sh *
 
Java -version
 
Version.sh 平台版本
 
Uname -a 机型 或者 oslevel
 
操作系统版本的检查:
 
# cat /etc/SuSE-release
 
内核版本的检查:
 
# uname -r
4         环境变量设置
 
#echo $SHELL
 
bash :            #vi.bash_profile        #. .bash_profile
 
sh or ksh :    #vi .profile                  #. .profile
 
csh or tcsh : #vi .login                    #source .login             .cshrc?
 
setenv    var=xxx;
 
export  var  xxx;
 
#echo $JAVA            
 
#env | grep JAVA
 
shell 类型不匹配,ln其他shell类型到当前 -- ln -s src desc
 
脚本执行bash:#./script  ;ksh: #sh script  ; bash->ksh?
 
==JAVA==
 
root用户上传(.bin,.rpm,压缩包),设置要使用用户的环境变量
 
export JAVA_HOME =/opt/jdk1.6
 
export JRE_HOME =/opt/jdk1.6/jre
 
export CLASSPATH =$JAVA_HOME/lib:$JRE_HOME/lib:.
 
export PATH =$JAVA_HOME/bin:$JRE_HOME/bin:$ORACLE_HOME/bin:.:$PATH
 
==ORACLE==
 
补丁安装-Ora软件安装-配置监听-升级Ora-创建DB
 
export ORACLE_BASE =/opt/oracle/app/oracle
 
export ORACLE_HOME =$ORACLE_BASE/product/11.2.0/dbhome_1
 
export ORACLE_SID =SID
 
export PATH =$ORACLE_HOME/bin:$PATH
 
5         Oracle
1)       Dbca 创建数据库(实例)
 
实例是“内存”(SGA)和“后台进程”(服务器进程、后台进程,从属进程)的集合,每个进程都会分配内部内存(PGA内存)来完成它的任务
 
RAC(Real Application Cluster)集群:多个实例同时驱动一个数据库
 
2)       $TNS_ADMIN指定配置文件tnsnames.ora位置:$ORACLE_HOME/network/admin
 
Tnsnames.ora 存储网络服务名(设为SIDname,为连接描述符的别名)
 
文件结构:
 
Esbora =
 
(DISCRIPTION =
 
(ADDRESS = (PROTOCOL = TCP)(HOST = IP) (PORT= 1521))
 
     (CONNECT_DATA =
 
(SERVER = DEDICATED)
 
(SERVICE_NAME = esbora)
 
 ) 
 
 )
3)       客户端连接数据库
 
连接字符串
 
Sqlplus  user/pwd@HOSTIP:1521/SID
 
网络字符串
 
Sqlplus  user/pwd@netservicename      本机登录不需要输入@nsn                                     
Sqlplus  sys/sys as sysdba 或者sqlplus “/as sysdba”
 
Sqlplus /holog   无用户连接DB
 
Conn  user/pwd@nsn
 
@执行指定目录脚本
 
Disc 断开连接
 
6         Listener
1)       Clinet-- Listener --Server
 
2)       Netca 配置监听 在服务器端
 
3)       监听器配置文件 $TNS_ADMIN/listener.ora
 
文件结构:
 
LISTENER =                     监听器名字,默认LISTENER
 
(DISCRIPTION_LIST =
 
(DISCRIPTION =
 
(ADDRESS = (PROTOCOL = TCP)(HOST = IP) (PORT= 1521))
 
(ADDRESS = (PROTOCOL = IPC)(KEY =EXTPROC1521))
 
)
 
)
 
SID_LIST_LISTENER =
 
(SID_LIST =
 
(SID_DESC =
 
(SID_NAME = esbora)
 
(ORACLE_HOME =/opt/oracle/app/oracle/OraHome_1)
 
(PROGRAME = extproc)
 
)
 
)
4)       Lsnrctl start (ListenerName) 不加名字起默认监听
 
5)       Lsnrctl stop
 
6)       Lsnrctl status
 
7         数据库安装
补丁安装 -- Ora软件安装 --配置监听-- 升级Ora --创建DB 顺序?
 
●      Display变量设置
 
Xmanager直接用 oracle用户登入
 
Root : xhost localhost ;xhost + 开放所有
 
Oracle :
 
export DISPLAY=localhost:1.0
 
setenv DISPLAY local_host:0.0
 
echo $DISPLAY
 
xclock 路径/usr/X11R6/bin 可添加到环境变量中
 
●      补丁安装
 
安装后再装DB,要在补丁目录下 oui/bin / ./runInstaller
 
如果数据库安装目录不在补丁目录下,如补丁目录在OraHome_1,安装在OraHome_2,那么要以oracle用户就能入$ORACLE_HOME目录下,将jdk目录mv成jdk.bak,然后执行以下命令建立一个链接:
 
#ln -s /opatch_path/jdk   jdk
 
#ls -al : jdk -> opt/oralce/app/oracle/OraHome_1/jdk
 
8         系统管理
1)       数据库启动
 
以sysdba身份登录
 
Startup nomount 只启动实例不启动数据库
 
启动实例包括分配内存和启动进程(读取参数文件)
 
Startup mount 启动数据库到mount状态(包括了nomount)
 
打开控制文件、数据文件和联机日志文件,关联实例
 
Alter database open 打开数据库
 
●      Startup;使用服务器端参数文件(SPFILE)启动,不要加SPFILE;也可以使用初始化参数文件(PFILE)启动:startupPFILE=$ORACLE_HOME/dbs/init.ora
 
Startup open read only 以只读方式启动数据库
 
●      Nomount ->alter database mount->alter database open;
 
●      Mount -> alterdatabse open;
 
Alter database open readonly;在mount状态下启动到只读模式
 
FAQ:数据库启动数据库被挂起
 
AlterFile:闪回区(Flash Recovery Area)磁盘空间不足
 
PFILE中配置了闪回区路径和大小;
 
Db_recovery_file_dest='<ORACLE_BASE>/flash_recovery_area'
 
Db_recovery_file_dest_size=2G
 
2)       数据库关闭
 
关闭数据库(写数据文件和连接日志)->Unmount数据库(分离数据库和实例,关闭控制文件)->关闭实例(从内存中移出SGA,终止进程)
 
Shutdown immediate 用户不能注册登录;未提交的事物江北回滚;不等待所有用户退出
 
9         进程管理
进程分为两类:用户进程、oracle进程
 
1)       用户进程
 
用户运行应用程序或者使用oracle客户端的时候,创建用户进程
 
两个相似概念:
 
●      连接:用户进程到实例间的一条通信路径,通常会在客户进程与一个专用服务器或一个调度器之间建立连接
 
专有服务器(dedicatedserver)连接,采用专有服务器连接时,会在服务器上得到针对       这个连接的一个专用进程,数据库连接与服务器上的一个进程或线程之间存在一对一的  映射
 
共享服务器(shared server)连接,采用共享连接时,多个会话可以共享一个服务器进       程池,其中的进程由Oracle实例生成和管理,你所连接的是一个数据库调度器       (dispatcher),而不是特意为连接创建的一个专用服务器进程。
 
●      会话:一个用户到数据库的一次特殊连接,从用户登入开始到退出结束;
 
会话是实例中的一个逻辑实体,客户进程可以在会话上执行sql,提交事务和运行存储       过程等。多个独立的会话可以与一个连接关联,这些会话设置可以独立于连接存在。
 
2)       Oracle进程(实例进程)
 
Oracle进程运行在服务器端:
 
●      服务器进程(ServerProcess):服务器进程就是代表客户会话完成工作的进程
 
处理连接到数据库的用户进程请求,对sql语句进行语法解析和执行,数据读取,返回      结果:
 
专有服务器进程(Dedicated):只为特定用户进程服务
 
共享服务器进程(Shared):采用共享服务器进程时,多个会话可以共享一个服务器进       程池,其中的进程由Oracle实例生成和管理
 
●      后台进程 (BackgroundProcess):随数据库而启动,用于完成各种维护任务
 
10      数据存储结构
 
●      逻辑结构(LogisticalStructure):数据块(DataBlock)区(Extent)段(Segment)
 
表空间(Tablespace)
 
块是最基本的存储单元
 
表空间:存放数据库对象(表、索引等)
 
●      物理结构(PhysicalStructure):
 
Datafiles、Control Files、Online Redo Logs(严格意义上的)
 
其他 Archive Log Files、Parameter Files、AlertFiles 、Trace Files、Backup Files
 
DataFiles:
 
每个数据文件都是一个操作系统文件,由多个操作系统块组成
 
数据库中的表、索引的数据物理上存放在数据文件中
 
一个数据库有多个数据文件,一个数据文件只属于一个数据库
 
一个表空间可以由多个数据文件构成,一个数据文件只属于一个表空间
 
11      常用脚本
1)       建表空间
Create tablespace tibco datafile
 
'/home/oracle/ora/oradata/VERIFY111/TIBCODATA1.DBF' SIZE 2048M REUSE
 
AUTOEXTEND ON  NEXT 100M MAXSIZE20480M,
 
'/home/oracle/ora/oradata/VERIFY111/TIBCODATA2.DBF' SIZE 2048M REUSE
 
AUTOEXTEND ON  NEXT 100M MAXSIZE20480M,
 
LOGGING EXTENT MANAGEMENT LOCAL SEGMENT SPACE MANAGEMENT AUTO;
 
2)       建用户
Create user tibapp
 
Identified by tibapp
 
Default tablespace TIBCODATA
 
Temporary tablespace TEMP
 
Profile DEFAULT;
 
--Grant/Revoke role privileges
 
Grant connect to tibapp;
 
Grant resource to tibapp;
 
--Grant/Revoke system privileges
 
Grant unlimited tablespace to tibapp;
 
3)       删除表空间和用户
Spool ./log/delete_tbs_user.log
 
Connect sys/sys@10.71.179.64/eplus11 as sysdba
 
Drop user username cascade;  
 
--cascade 表示删除用户之前先删除这个用户模式下的对象
 
Drop tablespace TIBCODATA;
 
Spool off
 
Exit;
 
4)       常用SQL
●      数据库状态
Select open_mode from v$database
 
Select status from v$instance
 
●      表空间,数据文件
Select * from dba_tablespaces;
 
Select username,default_tablespace from dba_users where username=' ';用户默认表空间
 
---------查询表空间大小---------
 
selectb.file_id 文件ID号,b.tablespace_name 表空间名,b.bytes/1204/1204 ||'M' 字节数,
 
(b.bytes-sum(nvl(a.bytes,0)))/1024/1024|||'M'已使用,
 
sum(nvl(a.bytes,0))/1024/1024||'M' 剩余空间,
 
100-sum(nvl(a.bytes,0))/(b.bytes)*100 占用百分比
 
fromdba_free_space a,dba_data_files b
 
wherea.file_id= b.file_id
 
groupby b.tablespace_name,b.file_id,b.bytes order by b.file_id
 
---------修改表空间大小---------
 
alter database datafile 'datafile_path/dbfname'  resize1024M;
 
alter tablespace tbsname add datafile '***' size 500m autoextend off;
 
●      用户管理
select username from dba_users;
 
select username,default_tablespace from dba_users where username=' ';
 
alter user username identified by new password;
 
●      进程查看
查询与专有服务器相关联的进程ID(PID)
 
Select a.spid dedicated_server, b.processclientpid
 
From v$process a,v$session bwhere a.addr=b.paddr
 
And b.sid= (select sid fromv$mystat where rownum=1);
 
Sqlplus: !/bin/ps -p pid 产看进程号对应信息
 
后台进程查看
 
Select * from v$bgprocess where paddr<>'00';
 
Ps -ef|grep ora_
 
●      杀掉用户进程(会话session)
Select sid,serial#,username,status,server,process,osuser,paddr fromv$session where type='USER';                   Process:clientpid  paddr:专有服务器进程地址
 
Alter system kill session 'SID,Serial#';
 
---------追根溯源法---------
 
查询oracle用户的会话信息
 
select username,machine,osuser,programe,status,count(machine) fromv$session
 
where username='' group by username,machine,programe,status,osuserorder by username,machine;
 
查找oracle 连接客户端,找到连接oracle用户源头进程干掉
 
●      数据库备份
a)       Exp user/pwd@SID   owner:user    rows=y  compress=n  buffer=65536      feedback=100000      volsize=0       file=user.dmp      log=user.log ;
 
b)       Expdp   user/pwd@SID   directory=dir_name   dumpfile=user.dmp    schemas=user      logfile=user.log;
 
查询创建db目录
 
Select* from dba_directories;
 
Createdirectory dir_name as ‘dir_path’;
 
Grantread,write or directory dir_name to public;
 
●      时间
Select  to_char(B2C(req_message))from table where instr(B2C(req_message),'str')>0;
 
Selet cast(sysdate as timestamp) "DATE" from dual;
 
Select to_char (sysdate,'yyyymmdd24miss') from dual;
 
Select to_char(to_date('2012-06-30 15:15:15','yyyy-mm-ddhh24:mi:ss'),'yyyy-mm-dd am hh24:mi:ss') from dual;
 
Select to_date (to_char(sysdate,'yyyy-mm-dd hh24:mi:ss'),'yyyy-mm-ddhh24:mi:ss') from dual;
 
Select to_number(to_char(sysdate,'yyyymmdd')) from dual;
 
Select to_date('2037-1-1','yy-mm-dd') from dual;l
 
Select to_date(sysdate) from dual;
 
Select sysdate-1 from dual;
 
Select add_months(sysdate,-1) from dual;
 
Select sysdate-1/(24*60) from dual;
 

相关内容

    暂无相关文章