oracle-sql-在多个数据库执行相同sql

简介:

脚本 f_con_exe_sql.sh

################################################################################
#     sql:需要执行的Sql,根据具体sql代替
#     array_name2:数据库tns
#     实现:在不同厂区执行同一sql:比如需要在所有厂区建索引。
################################################################################
#${dbuser}/${pwd}@${db_ip}:${db_port}/${service_name}
#不同厂区:
array_name1=(
"厂区A"
"厂区B"
"厂区C"
"厂区D"
"厂区E"
"厂区F"
"厂区G"
"厂区H"
)
array_name2=(
userA/password@192.168.10.11:1521/orcl
userA/password@192.168.10.12:1521/orcl
userA/password@192.168.10.13:1521/orcl
userA/password@192.168.10.14:1521/orcl
userA/password@192.168.10.15:1521/orcl
userA/password@192.168.10.16:1521/orcl
userA/password@192.168.10.17:1521/orcl
userA/password@192.168.10.18:1521/orcl
)
#echo ${array_name[@]}
#echo "sqlplus / as sysdba"${array_name[1]}
#echo length=${#array_name[@]}


#需要执行的Sql

sql2="
select sysdate,instance_name from v\$instance;
"

sql="
set line 400
col SEGMENT_NAME for a25
col OWNER for a15
col TABLESPACE_NAME for a20
col PARTITION_NAME for a20
col BYTES for 9999999999999
col size_G for 999999999999
col DEGREE for a5
col TABLE_NAME for a20
col TABLE_OWNER for a15
col INDEX_NAME for a25

select owner,segment_name,partition_name,segment_type,tablespace_name,blocks,bytes,bytes/1024/1024/1024 G from dba_segments where segment_name=upper('table1');

create index idx_table1_n2 on table1(mdate) TABLESPACE tab_INX parallel 5 online;
alter index idx_table1_n2 noparallel;

SELECT i.owner,
       i.index_name,
       i.table_owner,
       i.table_name,
       i.tablespace_name,
       i.degree,
       i.status,
       i.last_analyzed,
       o.created,
       o.last_ddl_time
  FROM dba_indexes i, dba_objects o
 WHERE     i.index_name = o.object_name
       AND i.owner = o.owner
       AND i.index_name IN
              upper('idx_table1_n2');
"


CURRENT_DIR=$(cd `dirname $0`; pwd)
LOG_FILE=${CURRENT_DIR}/sql_exec_$(date +"%Y%m%d_%H%M%S").log.$dbuser
cat /dev/null > $LOG_FILE


display_all_db()
{
for(( i=0;i<${#array_name2[@]};i++)) do
#${#array_name[@]}获取数组长度用于循环
echo ${array_name1[i]}"-"${array_name2[i]#*@}| tee -a $LOG_FILE
done;
}

##----------------遍历所有厂区数据库,并执行sql语句
f_con_exe_sql()
{
echo "------------------------------"| tee -a $LOG_FILE
echo ""|tee -a $LOG_FILE
echo "遍历所有数据库,并执行sql语句.."| tee -a $LOG_FILE
for(( i=0;i<${#array_name2[@]};i++)) 
do
#${#array_name[@]}获取数组长度用于循环
echo "#${i} 数据库-" ${array_name1[i]}"-"${array_name2[i]#*@}| tee -a $LOG_FILE
echo " "|tee -a $LOG_FILE
echo "执行sql: $sql"| tee -a $LOG_FILE
#echo "sqlplus -S ${dbuser}/${pwd}${array_name2[i]}"
echo " "|tee -a $LOG_FILE
sqlplus -S ${array_name2[i]} <<EOF | tee -a $LOG_FILE
$sql
EOF
echo " "|tee -a $LOG_FILE
done;
echo "执行结果: $LOG_FILE " | tee -a  $LOG_FILE
}




#####--------------------------------man--------------------------------#######

echo "------------------------------"| tee -a $LOG_FILE
display_all_db

f_con_exe_sql
目录
相关文章
|
19天前
|
SQL 缓存 监控
大厂面试高频:4 大性能优化策略(数据库、SQL、JVM等)
本文详细解析了数据库、缓存、异步处理和Web性能优化四大策略,系统性能优化必知必备,大厂面试高频。关注【mikechen的互联网架构】,10年+BAT架构经验倾囊相授。
大厂面试高频:4 大性能优化策略(数据库、SQL、JVM等)
|
5天前
|
SQL 数据库
gbase 8a 数据库 SQL优化案例-关联顺序优化
gbase 8a 数据库 SQL优化案例-关联顺序优化
|
19天前
|
SQL 存储 Linux
从配置源到数据库初始化一步步教你在CentOS 7.9上安装SQL Server 2019
【11月更文挑战第8天】本文介绍了在 CentOS 7.9 上安装 SQL Server 2019 的详细步骤,包括系统准备、配置安装源、安装 SQL Server 软件包、运行安装程序、初始化数据库以及配置远程连接。通过这些步骤,您可以顺利地在 CentOS 系统上部署和使用 SQL Server 2019。
|
20天前
|
SQL 存储 Linux
从配置源到数据库初始化一步步教你在CentOS 7.9上安装SQL Server 2019
【11月更文挑战第7天】本文介绍了在 CentOS 7.9 上安装 SQL Server 2019 的详细步骤,包括系统要求检查与准备、配置安装源、安装 SQL Server 2019、配置 SQL Server 以及数据库初始化(可选)。通过这些步骤,你可以成功安装并初步配置 SQL Server 2019,进行简单的数据库操作。
|
1月前
|
SQL Oracle 关系型数据库
Oracle数据库优化方法
【10月更文挑战第25天】Oracle数据库优化方法
40 7
|
1月前
|
Oracle 关系型数据库 数据库
oracle数据库技巧
【10月更文挑战第25天】oracle数据库技巧
28 6
|
1月前
|
存储 Oracle 关系型数据库
Oracle数据库优化策略
【10月更文挑战第25天】Oracle数据库优化策略
22 5
|
1月前
|
SQL 数据采集 监控
局域网监控电脑屏幕软件:PL/SQL 实现的数据库关联监控
在当今网络环境中,基于PL/SQL的局域网监控系统对于企业和机构的信息安全至关重要。该系统包括屏幕数据采集、数据处理与分析、数据库关联与存储三个核心模块,能够提供全面而准确的监控信息,帮助管理者有效监督局域网内的电脑使用情况。
19 2
|
2月前
|
SQL JSON Java
没有数据库也能用 SQL
SPL(Structured Process Language)是一款开源软件,允许用户直接对CSV、XLS等文件进行SQL查询,无需将数据导入数据库。它提供了标准的JDBC驱动,支持复杂的SQL操作,如JOIN、子查询和WITH语句,还能处理非标准格式的文件和JSON数据。SPL不仅简化了数据查询,还提供了强大的计算能力和友好的IDE,适用于多种数据源的混合计算。
|
2月前
|
SQL 数据库
SQL数据库基础语法入门
[link](http://www.vvo.net.cn/post/082935.html)

推荐镜像

更多