1. 连接linux服务器操作oracle
以某个服务器上面的数据库为例:
①连接到linux服务器(输入服务器的ip地址):ssh {ip}
②切换到操作oracle数据库:su – oracle
③切换到sqlplus操作:sqlplus
④输入数据库的用户名和密码
⑤执行sql语句(注:回删可以使用shift+backspaces键;语句后面要加入分号)
⑥在oracle中执行sql文件:@文件名 全路径,例如:@/home/oracle/zym_test.sql
⑦断开数据库连接:exit或者quit
2. 连接linux服务器操作mysql
以某个服务器上面的数据库为例:
①连接到linux服务器(输入服务器的ip地址):ssh {ip}
②切换到操作mysql数据库:su – mysql
③使用命令su -u用户名 –p,例如:mysql -uroot –p
④输入密码(不知道密码是啥,后面纯文字)
⑤执行sql语句(注:回删可以使用shift+backspaces键;语句后面要加入分号)
常用命令:show databases、show tables等
⑥断开数据库连接:exit
3. Oracle生成awr报告
sqlplus下执行如下语句:
①@?/rdbms/admin/awrrpt.sql
②输入要生成报告的文件格式,这里输出html格式:Type Specified: html
③输入要生成报告的相隔天数,比如今天:Enter value for num_days: 1
④输入相隔时间段之间的Snap Id开始号和结束号:
Enter value for begin_snap: 101
Enter value for end_snap: 102
⑤输入生成报告的名字:Enter value for report_name: awr.html
⑥在当前文件目录下查看awr报告
4. Oracle清理表空间
首先,使用system用户登陆查询表空间占用较大的表:
select owner, segment_name,sum(bytes) from DBA_SEGMENTS group by owner, segment_name having sum(bytes)>1024*10248 order by sum(bytes) desc
比如,清理某数据库的某个表的表空间,首先查询该表的分区(按住control键点击鼠标查看)
比如要清理两天前的数据,即2019-11-07以前的数据(SYS_P190为默认分区)
create or replace procedure pr_drop_partitions
as
v_sql1 varchar2(2000);
begin
FOR cur IN (select PARTITION_NAME from user_tab_partitions where table_name='tablename'
AND substr(partition_name,6,9)<= 3431 and length(partition_name) = 9 and partition_name != 'SYS_P190') LOOP
v_sql1:='alter table tablename drop partition '||cur.PARTITION_NAME||' update indexes';
execute immediate v_sql1;
END LOOP;
end pr_drop_partitions;
/