1、shell如何跨服务器执行数据库查询
1、使用ssh-keygen生成密钥实现快速登陆
[python] view plain copy
要跨服务器自动执行脚本,得需要实现免密码自动登陆,然后才能在多个服务器之间跳转,因此我们首先需要生成登陆密钥。
生存登陆密钥需要三个步骤,在本地机器创建密钥,复制公钥要远程主机,将公钥追加到远程主机的authorized_keys
下面是一个操作示例:
oracle@linux1:~> mkdir ~/.ssh #首先在本地创建.ssh目录并赋予权限
oracle@linux1:~> chmod 700 ~/.ssh
oracle@linux1:~> ssh-keygen -t rsa #使用ssh-keygen生成密钥对,也可以使用dsa方式
Generating public/private rsa key pair.
Enter file in which to save the key (/users/oracle/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /users/oracle/.ssh/id_rsa.
Your public key has been saved in /users/oracle/.ssh/id_rsa.pub.
The key fingerprint is:
01:c8:48:01:f2:3d:a7:b4:cd:4a:9c:10:2d:ba:ef:4e oracle@linux1
2、跨服务器数据库查询数据慢,该怎么解决
确定网速没问题的话,用的又是存储过程,服务器要处理rollback,log之类的操作会变慢,但是不至于慢这么多,你检查一下防火墙和杀毒软件,把他们关了看看会不会变快。能想到的就这么多了。刚刚给你查了下,禁用DNS解析,连接速度会快很多。不妨试一下,如果还慢的话,建议用缓存吧,比如hibernate框架
3、跨数据库查询
一台服务器上吗?sqlserver的话,直接采用 数据库名..表名 即可访问。oracle的话必须在B数据库的b表上赋A数据库的访问权限,然后才能用数据库名.表名访问即可。
4、mysql跨服务器查询
当然是不能直接跨服务器查询了。但是,如果你有足够的权限,可以变通一下。就是MYSQL的同步复制
使s2作为s1的从服务器,同步数据库d1到s2,这样s1做了更改后s2上也会有d1且d1也会随之改变数据,再在s2上执行同台服务器上的跨库查询就方便多了
关于如何设置“MYSQL的复制”,请到网站下载MYSQL参考手册,里边有详细的说明
如果不明白,可以HI我
5、跨服务器查询导入数据的sql语句
insert
into
MICS_WorkPlan_RestDays
select
*
from
OPENROWSET('SQLOLEDB',
'SERVER=192.168.2.97;uid=用户名;pwd=密码;Database=数据库','select
*
from
v_restdays(sql语句,可执行存储过程)')
as
a
此语句可用来将另一服务器中的数据插入到本数据库中的某一表内
6、mysql跨数据库查询
如果在同一台数抄据库,袭不同数据数据源,带上#database#.dbo.#table# 去查询
跨服务器的话,
a). 如果是只是做一些简单的检查的话,参照: http://hi.baidu.com/meteortent/item/b78810c5256c3824a0b50a8a
b).如果应用中经常性使用,建议是使用数据库表订阅吧
7、sql数据库中跨不同数据库服务器的查询
--SQL Server跨服务器查询
--创建链接服务器(连接的保密要自己想办法解决啦!)
exec sp_addlinkedserver 'LKSV', ' ', 'SQLOLEDB', '远程服务器名或ip地址'
exec sp_addlinkedsrvlogin 'LKSV', 'false ',null, '用户名', '密码'
--查询实例
select * from LKSV.数据库名.dbo.表名
8、如何在SQL SERVER跨服务器查询数据库
用OPENDATASOURCE
下面是个跨SQLServer查询的示例
Select TableA.*,TableB.* From OPENDATASOURCE(
'SQLOLEDB',
'Data Source=ServerA;User ID=UserID;Password=Password'
).databaseAName.dbo.TableA
Left Join
OPENDATASOURCE(
'SQLOLEDB',
'Data Source=ServerB;User ID=UserID;Password=Password'
).databaseBName.dbo.TableB On TableA.key=TableB.key
下面是个查询的示例,它通过用于 Jet 的 OLE DB 提供程序查询 Excel 电子表格。
SELECT *
FROM OpenDataSource( 'Microsoft.Jet.OLEDB.4.0',
'Data Source="c:\Finance\account.xls";User ID=Admin;Password=;Extended properties=Excel 5.0')...xactions
9、如何实现跨服务器的SQL查询语句
如oracle可以创建dblink ,通过此来查询,比如本地查询表:select * from table;
dblink 端:select * from table@dblink名