类似于我之前的问题DBA 必须了解 SSAS 什么?,这产生了一个非常好的答案(谢谢,@ConcernedOfTunbridgeWells!),我现在问一个类似的问题:
SQL Server DBA 需要了解有关 Windows Server 的哪些信息才能有效地管理它并了解幕后发生的事情,以及了解 SQL Server 运行的底层操作系统在多大程度上很重要成为一名优秀的 DBA?
它可以是个性化的功能,书籍,从经验中,你说出来!
我在 Windows 2008 R2 服务器上安装了 Oracle 11G。我还使用单独的安装介质安装了 Oracle 客户端库。客户端安装后,当我尝试使用以下方法登录数据库时:
C:\>sqlplus / as sysdba
Run Code Online (Sandbox Code Playgroud)
我收到以下错误:
ORA-01031: 权限不足
这在客户端安装之前有效。我的账号在ORA_DBA群里。我的帐户也在管理员组中。ORACLE_SID我的环境变量列表中没有设置。必须是吗?这在客户端安装之前有效,当时我也没有那个变量。
UAC 处于最低级别,我始终cmd以管理员身份运行。
我sqlnet.ora在文件夹中有一个这样的文件:
C:\app\myaccount\product\11.2.0\dbhome_1\NETWORK\ADMIN
Run Code Online (Sandbox Code Playgroud)
# sqlnet.ora Network Configuration File: C:\app\myaccount\product\11.2.0\dbhome_1\network\admin\sqlnet.ora
# Generated by Oracle configuration tools.
# This file is actually generated by netca. But if customers choose to
# install "Software Only", this file wont exist and without the native
# authentication, they will not be able to connect to the database on …Run Code Online (Sandbox Code Playgroud) 我一直在尝试使用 SQL Server Management Studio 2008 内置的“解决方案资源管理器”来管理一个项目,经过 2 周的努力,我决定我并不真正关心它。它的“方便”功能实际上是一个很大的障碍。
不幸的是,我工作的地方是一家 MS 商店,并且非常受阻。我想回到命令行(我渴望 Vim!)。我已经安装了一个带有 TortiseSVN 前端的本地 subversion 存储库,以替换上面提到的“解决方案资源管理器”并使其运行良好。我还安装了 Vim,在继续定制它的同时,让它嗡嗡作响。
但是,我还没有找到解决方案的一件事是如何通过命令行向 SQL Server 运行命令。我习惯于 MySQL/Postgres 命令行提示,因为这是我过去使用过的并且在我的课程中使用的。但是,我似乎找不到通过 Windows 中的命令行执行脚本的方法。我目前在 Vim 中编辑它们,在 SSMS 中刷新页面,然后执行。除非需要,否则我什至不想触摸 SMSS。
我看过建议使用 sqlsharp 的帖子,但是当我转到该页面时,我觉得这不是我想要的。
- 编辑
我真的希望可以有 2 个答案复选标记。P. Campbell 有技术上的正确答案,我已经尝试了几次(当我尝试 sqlcmd 时我一直收到错误...在研究命名管道的运行方式时...即使我已经设置了它并启用,它似乎不起作用。)
在尝试并没有任何成功之后,我尝试了复制并粘贴到管理工作室的方法,但这太荒谬了......所以我决定也许 HardCode 也是正确的。
我需要运行以下命令的替代方法:
C:\xxx\pgsql\bin\pg_ctl" -D "C:\xxx\pgsql\data" -l "C:\yyy\log\pgsql.log" start.
这样服务器启动并登录到C:\yyy\log\pgsql.log. 当我尝试将服务器注册为服务时 - 没有可用的日志记录选项,并且服务器会记录到事件查看器。从 pg_ctl 文档:
pg_ctl register [-N servicename] [-U username] [-P password] [-D datadir] [-S a[uto] | d[emand] ] [-w] [-t 秒] [-s] [-o 选项]
如何强制服务器登录到文件?注意:我不想使用一键安装程序,我只想使用解压缩的二进制文件。
这与这个问题有关。它确实有助于提高 InnoDB 表的性能。
根据MySQL 手册,innodb_flush_log_at_trx_commit是一个全局动态变量。因此,我可以使用 SET GLOBAL 命令更改它,它似乎正在工作。
mysql> SET GLOBAL innodb_flush_log_at_trx_commit=2;
Query OK, 0 rows affected
mysql> SHOW VARIABLES LIKE 'innodb_flush_log_at_trx_commit';
+--------------------------------+-------+
| Variable_name | Value |
+--------------------------------+-------+
| innodb_flush_log_at_trx_commit | 2 |
+--------------------------------+-------+
1 row in set
Run Code Online (Sandbox Code Playgroud)
但是,它并没有改变实际的 MySQL 设置。当我更新my.cnf并重新启动 MySQL 服务器时,它确实有效。那么,我不能在运行时更改全局变量?
我更喜欢 default value innodb_flush_log_at_trx_commit=1,但我需要在运行大型数据库的还原过程之前将其更改为 2 以加快速度。但是当过程完成后,我想将值改回 1。是否可以在运行时执行此操作?
我无法访问共享托管服务器上的my.cnf。
嗨,我是一名土木工程师,有一些编程经验,但我不熟悉当今可用的大量选项。希望你能给我任何指示最好的方法。
我想以网格格式制作和查询地面测量数据的数据库。在土方作业的不同时间,每个网格位置都会有许多测量值,因此存在时间的第 4 维。
观察结果很可能是从文本文件中读入的。在每条记录中都会有一个(2 x 整数)网格位置(行和列)一个(浮点)地平面和各种字符串信息代码(总共可能多达 30 个字符)。
网格可以是大约 10000 行 x 10000 列。并非网格上的每个位置在每次调查中都有记录,但通常最多有一百条记录。许多网格位置根本没有记录(该站点不会是完美的矩形)。
我想搜索记录、提取数据并进行计算,例如计算每个网格位置的最低或最高地平面。我相当有信心,我有能力用诸如 FORTRAN、BASIC 或 C 之类的语言使用数组相当简单地进行编程。虽然很多数组元素都是空的,但我猜这不是正确的方法,像这样的大型数据库需要特殊的工具,我必须学习如何使用。
我正在考虑平台的可能选项 -
使用数据库程序。我不熟悉这些功能有多强大,但我想它们会在 GUI 上产生很多开销。
使用 SQL?这我不太了解,但它似乎是数据库的语言。我一直使用命令式语言而不是声明式语言,正如我从维基百科了解到 SQL 是声明式的,我对这种变化有点紧张。我不完全了解使用它的过程。是否有制作控制台程序的编译器?数据库是否存储在磁盘上?抱歉问了这么愚蠢的问题。
使用像 c-treeACE 这样的 API?我认为这可能是让我熟悉“做这个,然后做那个”语言的方式(不幸的是,这就是我作为工程师的想法!)。但我希望 API 提供的幕后内存和处理管理将优于我使用大型数组所能实现的。
或者我可以用面向对象的语言来做,让计算机担心存储要求。例如,如果我将记录存储为具有方法和属性的对象,这些方法和属性可以帮助我从每条记录中获得我需要的结果 - 与 3 相比,它会是一个巨大的臃肿程序吗?
可能有数亿条记录,我希望能够在运行 Windows 的现代 PC 上在几分钟而不是几小时(最好是几秒钟!)内查询和处理它们。更具体地说,我的是带有 6Gb ram 和 120Gb SSD 的 i7 处理器,运行 Windows 7 64 位。
希望有人有时间与新手分享几句智慧之词。
我有一台装有 Windows XP Professional Edition Service Pack 3 操作系统的笔记本电脑作为我的开发人员站。
我已经下载并安装了 Express-C 版本的 IBM DB2 UDB 9.7 修订包 4。
我有一个名为 db2admin 的本地 Windows 帐户,我将它用作本地数据库管理员,用于本地安装 DB2(仅限开发人员)。
运行命令行窗口时,我可以毫无问题地运行以下命令:
db2 attach to db2 user db2admin using xxxxxxxxxx
Run Code Online (Sandbox Code Playgroud)
这允许我附加到我的名为 DB2 的实例。
我可以运行我的创建数据库命令。
然后我尝试连接到数据库以授予我在 DB2 中的 db2admin 帐户的所有权限。
db2 CONNECT TO MYDB;
SET SCHEMA DB2ADMIN;
db2 GRANT DBADM,CREATETAB,BINDADD,CONNECT,CREATE_NOT_FENCED_ROUTINE,IMPLICIT_SCHEMA,LOAD,CREATE_EXTERNAL_ROUTINE,QUIESCE_CONNECT,SECADM ON DATABASE TO USER DB2ADMIN;
CONNECT RESET;
Run Code Online (Sandbox Code Playgroud)
但是,当我运行它时,DB2 告诉我我的实际 Windows 用户帐户 (synprgcma) 无权向用户 db2admin 授予权限。
因此,如果我将第二个脚本更改为以下内容:
db2 CONNECT TO MYDB USER db2admin USING xxxxxxxx;
SET SCHEMA DB2ADMIN;
db2 …Run Code Online (Sandbox Code Playgroud) 我已经在 Windows Server 2012 R2 上安装了 mysql server 5.6.24。
我导入了转储文件,数据文件存储在 C:\ProgramData\MySQL\MySQL Server 5.6\data
我想更改目录,如D:\ProgramData\Data.
你能帮我吗,有人吗?
我有一台运行 SQL Server 实例的物理服务器。
我注意到这个服务器经常以 100% 的 CPU 使用率运行。
我的 IT 团队对此并不满意,并建议我们为操作系统保留 32 个内核中的 2 个。
这很好用,现在最大使用峰值略低于 90%。此外,不再报告来自不同用户的缓慢数据检索。
是否有任何理由不以这种方式使用 WSRM(Windows 系统资源管理器)而不是 SQL 资源调控器?
windows ×10
sql-server ×3
mysql ×2
oracle ×2
datadir ×1
db2 ×1
innodb ×1
installation ×1
log ×1
mysql-5.6 ×1
permissions ×1
postgresql ×1
record ×1