关于Oracle的小操作
背景
在red hat上安装的 oracle环境。
查看和修改连接数
--查看用户权限
select * from user_role_privs
--需要system身份登录
select count(*) from v$process; --当前的连接数
select * from v$parameter where name ='processes';
--修改最大连接数
alter system set processes = 1000 scope = spfile;
--重启数据库,需要在本地操作,不能远程命令过去
shutdown immediate
startup
定时任务
切换到orcale 用户下查看任务。
su orcale
退出的orcale
exit
查看定时任务命令
crontab -L
编辑定时任务命令
crontab -e
oracle上的单数据库文件达到上限32G
某天数据库提示 select * into #temp from user_jiaoyi 失败,无法扩展空间。
初步认为dbf文件上限到了,后排查dbf文件有自增设置。想手工扩展该表空间文件大小,使用命令
--system用户登陆才行
SELECT t.tablespace_name, round(SUM(bytes / (1024 * 1024)), 0) ts_size
FROM dba_tablespaces t, dba_data_files d
WHERE t.tablespace_name = d.tablespace_name
GROUP BY t.tablespace_name;
表空间 tbs_1 满了32g
后来发现该dbf文件大小是 32G了,没法增加表空间
后来再指定另外一个表空间给他
alter tablespace tbs_1 add datafile '/home/oracle/oradata/data/tbs_01.dbf' size 1024M Autoextend on next 8M Maxsize 1024M
修改orcale的导出数据库路径
不能直接在脚本上写上泵出数据库的路径,所以只能写orcale文件
create or replace directory dumpdir as '/home/new/dumpfiles';
就是下面的DUMP_DIR
#! /bin/bash
PATH=$PATH:$HOME/bin
export PATH
ORACLE_BASE=/home/oracle/; export ORACLE_BASE
ORACLE_HOME=$ORACLE_BASE/app/product/11g/db_1; export ORACLE_HOME
NLS_LANG=American_America.ZHS16GBK; export NLS_LANG
ORACLE_SID=drs; export ORACLE_SID
PATH=$PATH:$ORACLE_HOME/bin:$ORACLE_HOME/jdk/bin:/sbin;export PATH
BIN=$ORACLE_HOME/bin; export BIN
LD_LIBRARY_PATH=$ORACLE_HOME/lib; export LD_LIBRARY_PATH
export LANG=en_US.UTF-8
set -e
mydate=$(date +%Y%m%d%H)
myday=$(date +%d)
echo $(date) 移动日志文件...
find /disk2/oracle/databak/ -name '*.log' -print -exec mv {} /disk2/oracle/databak/log/ \;
echo $(date) 删除3天前旧备份文件...
find /disk2/oracle/databak/ -name '*.DMP' -type f -mtime +2 -print -exec rm -rf {} \;
echo $(date) 备份开始...
expdp system/drs@drs DUMPFILE=DRS_EXPDP_FULL_$mydate.DMP,DIRECTORY=DUMP_DIR,LOGFILE=drs_expdp_full_$mydate.log FULL=Y
echo $(date) 备份结束.
echo $(date) 拷贝备份到异机开始...
zip /home/oracle/data/dataRemoteBackup/drs_expdp_full_$mydate.zip /disk2/oracle/databak/DRS_EXPDP_FULL_$mydate.DMP -pj
echo $(date) 拷贝备份到异机结束.
exit 0
关于连接远程db库
今天碰到一个问题,在服务器上安装了oracle 服务端和plsql客户端。
我一直在配置服务端的ora。使用plsql连接一直失败,所以后来找到plsql对应的ora文件,更新后就没问题了。plsql的 tnsname信息可以在plsql的客户端查看到。菜单是【help】 —>【 Support info】->【tns names】
虚拟机linux新增磁盘
不用关机,直接新增磁盘。
增加后我们 df -h 是看不到的。
所以步骤是这样的。
#fdisk -l
--查看到新的设备 /dev/sdc
--2新磁盘分区
#fdisk /dev/sdc
#Command (m for help):m
#Command (m for help):n
#Command (m for help):p
#Command (m for help):1
#Command (m for help):
--空白表示默认
#Command (m for help):
#Command (m for help):w
--3.查看是否成功
lsblk
格式化新分区 (因为新增的磁盘很大,所以要选择 sdc1)
# mkfs.ext4 /dev/sdc1
等待完成。
把新分区加挂到系统上面。
---新建目录
#mkdir /ora-data
---给目录分配,数据库用户的读写权限
#chown -R oracle:oinstall /ora-data
---把新磁盘加挂到这个目录下。
#mount /dev/sdc1/ /ora-data
-- 查看硬盘情况
#df -h
开机时自动挂载
---编辑开机自启动文件
vi /etc/rc.d/rc.local
--添加 mount /dev/sdc1 /ora-data