СОЗДАТЬ БАЗУ ДАННЫХ
Перейдите на одну из следующих вкладок, чтобы изучить синтаксис, аргументы, примечания, разрешения и примеры для используемой вам версии SQL.
Выбор продукта
В следующей строке выберите название нужного продукта, и отобразится информация только об этом продукте.
* SQL Server *
SQL Server
Обзор
В SQL Server эта инструкция создает базу данных, используемые для нее файлы и их файловые группы. Также она позволяет создать моментальный снимок базы данных или подключить файлы для создания базы данных из отсоединенных файлов другой базы данных.
Синтаксис
Создается база данных .
Дополнительные сведения о соглашениях о синтаксисе см. в статье Соглашения о синтаксисе в Transact-SQL.
CREATE DATABASE database_name [ CONTAINMENT = < NONE | PARTIAL >] [ ON [ PRIMARY ] [ . n ] [ , [ . n ] ] [ LOG ON [ . n ] ] ] [ COLLATE collation_name ] [ WITH [. n ] ] [;] ::= < FILESTREAM ( [. n ] ) | DEFAULT_FULLTEXT_LANGUAGE = < lcid | language_name | language_alias >| DEFAULT_LANGUAGE = < lcid | language_name | language_alias >| NESTED_TRIGGERS = < OFF | ON >| TRANSFORM_NOISE_WORDS = < OFF | ON >| TWO_DIGIT_YEAR_CUTOFF = | DB_CHAINING < OFF | ON >| TRUSTWORTHY < OFF | ON >| PERSISTENT_LOG_BUFFER=ON ( DIRECTORY_NAME='' ) | LEDGER = > ::= < NON_TRANSACTED_ACCESS = < OFF | READ_ONLY | FULL >| DIRECTORY_NAME = 'directory_name' > ::= < ( NAME = logical_file_name , FILENAME = < 'os_file_name' | 'filestream_path' >[ , SIZE = size [ KB | MB | GB | TB ] ] [ , MAXSIZE = < max_size [ KB | MB | GB | TB ] | UNLIMITED >] [ , FILEGROWTH = growth_increment [ KB | MB | GB | TB | % ] ] ) > ::= < FILEGROUP filegroup name [ [ CONTAINS FILESTREAM ] [ DEFAULT ] | CONTAINS MEMORY_OPTIMIZED_DATA ] [ . n ] >
Присоединение базы данных
CREATE DATABASE database_name ON [ . n ] FOR < < ATTACH [ WITH [ , . n ] ] > | ATTACH_REBUILD_LOG > [;] ::= < | RESTRICTED_USER | FILESTREAM ( DIRECTORY_NAME = < 'directory_name' | NULL >) > ::=
Создание моментального снимка базы данных
CREATE DATABASE database_snapshot_name ON ( NAME = logical_file_name, FILENAME = 'os_file_name' ) [ . n ] AS SNAPSHOT OF [;]
Аргументы
database_name
Имя новой базы данных. Имена баз данных должны быть уникальны внутри экземпляра SQL Server и соответствовать правилам для идентификаторов.
Аргумент database_name может иметь максимальную длину 128 символов, если для файла журнала не указано логическое имя. Если логическое имя файла не указано, SQL Server формирует для журнала имена logical_file_name и os_file_name путем добавления суффикса к database_name. Это ограничивает длину аргумента database_name 123 символами, чтобы формируемое логическое имя файла было не длиннее 128 символов.
Если имя файла данных не указано, SQL Server использует database_name как logical_file_name и os_file_name. Путь по умолчанию берется из реестра. Путь по умолчанию можно изменить на вкладке Свойства сервера (страница «Параметры базы данных») в Management Studio. Изменение пути по умолчанию требует перезапуска SQL Server.
CONTAINMENT =
Область применения: SQL Server 2012 (11.x) и более поздних версий
Указывает состояние включения базы данных. NONE = неавтономная база данных. PARTIAL = частично автономная база данных.
DNS
Указывает, что дисковые файлы, используемые для хранения разделов данных в базе данных, файлов данных, определяются явно. Параметр ON необходимо применять, если за ним следует разделенный запятыми список элементов , которые определяют файлы данных первичной файловой группы. За списком файлов в первичной файловой группе может следовать необязательный разделенный запятыми список элементов , которые определяют файловые группы пользователей и принадлежащие им файлы.
ОСНОВНОЙ
Указывает, что связанный список определяет первичный файл. Первый файл, указанный в элементе в первичной файловой группе, становится первичным файлом. В базе данных может быть только один первичный файл. Дополнительные сведения см. в статье Файлы и группы файлов базы данных.
Если параметр PRIMARY не указан, то первый файл списка в инструкции CREATE DATABASE становится первичным файлом.
LOG ON
Указывает, что дисковые файлы, используемые для хранения журнала базы данных, то есть файлы журналов, определяются явно. За параметром LOG ON следует разделенный запятыми список элементов , которые определяют файлы журналов. Если параметр LOG ON не указан, автоматически создается один файл журнала, размер которого определяется большей из следующих двух величин: 512 КБ или 25 процентов от суммы размеров всех файлов данных в базе данных. Этот файл помещается в местоположение для журнала по умолчанию. См. дополнительные сведения об этом расположении.
Параметр LOG ON не может указываться для моментального снимка базы данных.
COLLATE collation_name
Задает параметры сортировки по умолчанию для базы данных. Именем параметров сортировки может быть либо имя параметров сортировки Windows, либо имя параметров сортировки SQL. Если параметр не указан, базе данных назначаются параметры сортировки по умолчанию для экземпляра SQL Server. Имя параметров сортировки не может указываться для моментального снимка базы данных.
Имя параметров сортировки не может указываться с предложениями FOR ATTACH и FOR ATTACH_REBUILD_LOG. Дополнительные сведения о способах изменения параметров сортировки подсоединенной базы данных см. на веб-сайте корпорации Майкрософт.
Список имен параметров сортировки Windows и SQL см. в статье Параметры сортировки.
Сортировка в автономных базах данных отличается от неавтономных баз данных. Дополнительные сведения см. в разделе Параметры сортировки автономной базы данных.
инструкции WITH
Область применения: SQL Server 2012 (11.x) и более поздних версий.
Указывает уровень нетранзакционного доступа FILESTREAM к базе данных.
| значение | Description |
|---|---|
| ВЫКЛ. | Нетранзакционный доступ отключен. |
| READONLY | Данные FILESTREAM в этой базе данных могут быть считаны нетранзакционными процессами. |
| FULL | Полный нетранзакционный доступ к FILESTREAM FileTable включен. |
Область применения: SQL Server 2012 (11.x) и более поздних версий
Имя каталога, совместимое с Windows. Это имя должно быть уникальным среди всех Database_Directory имен в экземпляре SQL Server. Проверка уникальности не учитывает регистр символов независимо от параметров сортировки SQL Server. Этот параметр необходимо назначить до создания FileTable в этой базе данных.
Следующие параметры разрешаются, только если параметр CONTAINMENT установлен в состояние PARTIAL. Если параметр CONTAINMENT установлен в состояние NONE, возникнут ошибки.
DEFAULT_FULLTEXT_LANGUAGE = | языка |
Область применения: SQL Server 2012 (11.x) и более поздних версий
DEFAULT_LANGUAGE = | языка |
Область применения: SQL Server 2012 (11.x) и более поздних версий
NESTED_TRIGGERS =
Область применения: SQL Server 2012 (11.x) и более поздних версий
TRANSFORM_NOISE_WORDS =
Область применения: SQL Server 2012 (11.x) и более поздних версий
TWO_DIGIT_YEAR_CUTOFF = < 2049 | >
Четыре цифры, обозначающие год. Значение по умолчанию — 2049. Полное описание этого параметра см. в статье Настройка параметра конфигурации сервера two digit year cutoff.
DB_CHAINING
Если указано значение ON, то база данных может быть источником или целевой базой данных в межбазовой цепочке владения.
Если задано значение OFF, то база данных не может участвовать в межбазовых цепочках владения. Значение по умолчанию — OFF.
Экземпляр SQL Server распознает этот параметр, если параметр сервера цепочки владения между базами данных имеет значение 0 (OFF). Если параметр cross db ownership chaining имеет значение 1 (ON), то все пользовательские базы данных могут участвовать в межбазовых цепочках владения, вне зависимости от значения этого параметра. Этот параметр задается с помощью процедуры sp_configure.
Для задания этого параметра необходимо членство в предопределенной роли сервера sysadmin. Параметр DB_CHAINING нельзя установить для системных баз данных: master , model , tempdb .
TRUSTWORTHY
Если задано значение ON, то модули базы данных (например, представления, определяемые пользователем функции и хранимые процедуры), в которых используется контекст олицетворения, могут обращаться к ресурсам, расположенным за пределами базы данных.
Если задано значение OFF, то модули базы данных в контексте олицетворения не могут обращаться к ресурсам, расположенным за пределами базы данных. Значение по умолчанию — OFF.
Параметр TRUSTWORTHY устанавливается в значение OFF при каждом присоединении базы данных.
По умолчанию для всех системных баз данных, кроме msdb , для параметра TRUSTWORTHY задано значение OFF. Это значение не может быть изменено для баз данных model и tempdb . Рекомендуется никогда не задавать значение ON для параметра TRUSTWORTHY базы данных master .
PERSISTENT_LOG_BUFFER=ON ( DIRECTORY_NAME=» )
Если указан этот параметр, буфер журнала транзакций создается в томе на дисковом устройстве с поддержкой памяти класса хранилища (энергонезависимое хранилище NVDIMM-N), которое также называется постоянным буфером журнала. Дополнительные сведения см. в записи блога о сокращении задержки фиксации транзакций с помощью памяти класса хранилища. Область применения: SQL Server 2017 (14.x) и более поздних версий.
LEDGER =
Если задано значение ON , создается база данных реестра, в которой обеспечивается целостность всех пользовательских данных. В базе данных реестра можно создавать только таблицы реестра. Значение по умолчанию — OFF . Значение параметра LEDGER нельзя изменить после создания базы данных. Дополнительные сведения см. в разделе Настройка базы данных реестра.
CREATE DATABASE . FOR ATTACH [ WITH < attach_database_option >]
Указывает, что база данных создана путем присоединения существующего набора файлов операционной системы. Должен существовать элемент , который указывает первичный файл. Кроме этого элемента, необходимы только элементы , предназначенные для файлов, пути которых отличны от путей, существовавших при создании или последнем подключении базы данных. Для таких файлов должен быть определен элемент .
Для параметра FOR ATTACH необходимо выполнение следующих условий.
- Должны быть доступны все файлы данных (MDF и NDF).
- Если существует несколько файлов журналов, все они должны быть доступны.
Если база данных, доступная для чтения и записи, располагает единственным файлом журнала, который недоступен в текущий момент, а также если база данных была закрыта в отсутствие пользователей или открытых транзакций перед операцией присоединения, то параметр FOR ATTACH автоматически перестраивает файл журнала и обновляет первичный файл. Однако журнал невозможно перестроить в базе данных, доступной только для чтения, так как нельзя обновить первичный файл. Поэтому, если присоединяется база данных только для чтения, журнал которой недоступен, необходимо указать в предложении FOR ATTACH файлы журнала или файлы.
База данных, созданная в более поздней версии SQL Server, не может быть подключена в ранних версиях.
В SQL Server любые полнотекстовые файлы, являющиеся частью подключаемой базы данных, будут подключены вместе с базой данных. Чтобы задать новый путь полнотекстового каталога, следует указать новое местоположение без имени полнотекстового файла операционной системы. Дополнительные сведения см. в разделе Примеры.
При подключении базы данных, содержащей параметр FILESTREAM «Directory name», к экземпляру SQL Server он должен проверить уникальность имени Database_Directory. Если это не так, операция присоединения завершается с ошибкой FILESTREAM Database_Directory name is not unique in this SQL Server instance . Чтобы избежать этой ошибки, необходимо передать этой операции необязательный параметр directory_name.
Параметр FOR ATTACH не может указываться для моментального снимка базы данных.
В предложении FOR ATTACH может указываться параметр RESTRICTED_USER. Предложение RESTRICTED_USER позволяет подключаться к базе данных только членам предопределенных ролей базы данных db_owner и dbcreator и предопределенной роли сервера sysadmin, количество соединений при этом не ограничивается. Пользователям, не соответствующим этому условию, подключение не разрешается.
Если в базе данных используется Service Broker, в предложении FOR ATTACH следует использовать WITH >service_broker_option
Управляет доставкой сообщений Service Broker и идентификатором Service Broker для базы данных. Параметры Service Broker можно указывать только при использовании предложения FOR ATTACH.
ENABLE_BROKER
Указывает, что компонент Service Broker включен для указанной базы данных. Это означает, что происходит запуск доставки сообщений и параметру is_broker_enabled задается значение true в представлении каталога sys.databases . Существующий идентификатор компонента Service Broker сохраняется в базе данных.
NEW_BROKER
Создает новое значение service_broker_guid в sys.databases и в восстановленной базе данных. Завершает все конечные точки диалога с очисткой. Посредник включен, но сообщения удаленным конечным точкам диалога не отправляются. Любой маршрут, ссылающийся на старый идентификатор Service Broker, должен быть повторно создан с новым идентификатором.
ERROR_BROKER_CONVERSATIONS
Завершает все диалоги, находящиеся в состоянии ошибки, которые были присоединены к базе данных или восстановлены. Посредник отключается до завершения этой операции, после чего вновь включается. Существующий идентификатор компонента Service Broker сохраняется в базе данных.
При подключении реплицируемой базы данных, которая была скопирована, а не отсоединена, необходимо учитывать следующее.
- При подключении базы данных к тому же экземпляру и версии сервера, к которому была подключена оригинальная база данных, не требуется никаких дополнительных действий.
- При подключении базы данных к обновленной версии того же экземпляра сервера необходимо запустить процедуру sp_vupgrade_replication для обновления репликации по завершении операции подключения.
- При подключении базы данных к другому экземпляру сервера, независимо от его версии, необходимо запустить процедуру sp_removedbreplication для удаления репликации по завершении операции подключения.
Подключение работает с форматом хранения vardecimal, но ядро СУБД SQL Server нужно обновить по меньшей мере до версии SQL Server 2005 (9.x) SP2. Подключение баз данных, использующих формат хранения vardecimal более ранних версий SQL Server, невозможно. Дополнительные сведения о формате хранения vardecimal см. в разделе Сжатие данных.
При первом присоединении базы данных к новому экземпляру SQL Server или ее восстановлении копия главного ключа базы данных (зашифрованная главным ключом службы) еще не хранится на сервере. Необходимо расшифровать главный ключ базы данных с помощью инструкции OPEN MASTER KEY. Как только главный ключ базы данных будет расшифрован, появится возможность разрешить автоматическую расшифровку в будущем с помощью инструкции ALTER MASTER KEY REGENERATE, чтобы оставить на сервере копию главного ключа базы данных, зашифрованного с помощью главного ключа службы. После обновления базы данных с переходом от более ранней версии главный ключ базы данных должен быть создан повторно для использования нового алгоритма шифрования AES. См. дополнительные сведения о повторном создании главного ключа базы данных. Время, необходимое для повторного создания главного ключа базы данных с обновлением до алгоритма шифрования AES, зависит от числа объектов, защищаемых главным ключом базы данных. Повторное создание главного ключа базы данных с обновлением до алгоритма шифрования AES необходимо произвести только один раз. Это никак не повлияет на последующие операции повторного создания, выполняемые в соответствии со стратегией смены ключей. См. дополнительные сведения об обновлении базы данных с помощью присоединения.
Рекомендуется не присоединять базы данных из неизвестных или сомнительных источников. В этих базах данных может содержаться вредоносный код, вызывающий выполнение непредусмотренных инструкций Transact-SQL или появление ошибок из-за изменения схемы или физической структуры базы данных. Перед тем как использовать базу данных, полученную из неизвестного или ненадежного источника, выполните на тестовом сервере инструкцию DBCC CHECKDB для этой базы данных, а также изучите исходный код в базе данных, например хранимые процедуры и другой пользовательский код.
Параметры TRUSTWORTHY и DB_CHAINING не оказывают эффекта при присоединении базы данных.
FOR ATTACH_REBUILD_LOG
Указывает, что база данных создана путем присоединения существующего набора файлов операционной системы. Этот параметр применяется только в базах данных, доступных для чтения и записи. Должен существовать элемент , указывающий первичный файл. Если один или несколько файлов журналов транзакций отсутствуют, то файл журнала перестраивается. ATTACH_REBUILD_LOG автоматически создает новый файл журнала размером 1 МБ. Этот файл помещается в местоположение для журнала по умолчанию. См. дополнительные сведения об этом расположении.
Если файлы журналов доступны, ядро СУБД использует их, не перестраивая файлы журнала.
Для параметра FOR ATTACH_REBUILD_LOG необходимы следующие условия:
- Чистое завершение работы базы данных.
- Должны быть доступны все файлы данных (MDF и NDF).
Эта операция разрывает цепочку резервных копий журнала. Рекомендуется выполнить полное резервное копирование базы данных после завершения операции. Дополнительные сведения см. в описании BACKUP.
Как правило, параметр FOR ATTACH_REBUILD_LOG используется при копировании базы данных, доступной для чтения и записи и обладающей большим журналом, на другой сервер, где копия будет использоваться преимущественно или исключительно для операций чтения. Поэтому для журнала требуется меньше места, чем в случае исходной базы данных.
Параметр FOR ATTACH_REBUILD_LOG не может указываться для моментального снимка базы данных.
Управляет свойствами файла.
NAME logical_file_name
Задает логическое имя файла. Параметр NAME требуется при указании параметра FILENAME во всех случаях, кроме указания одного из предложений FOR ATTACH. Файловая группа FILESTREAM не может иметь имя PRIMARY.
Является логическим именем, используемым в SQL Server при ссылке на файл. Аргумент logical_file_name должен быть уникальным в базе данных и соответствовать правилам для идентификаторов. Имя может быть символом или константой Юникода, а также обычным идентификатором или идентификатором с разделителями.
FILENAME < 'os_file_name‘ | ‘filestream_path‘ >
Задает имя файла в операционной системе (физическое имя).
‘os_file_name‘
Путь и имя файла, используемые операционной системой при создании файла. Файл должен находиться на одном из следующих устройств: на локальном сервере, где установлен SQL Server, в сети хранения данных [SAN] или в сети на основе iSCSI. Указанный путь должен существовать до выполнения инструкции CREATE DATABASE. Дополнительные сведения см. в разделе Файлы и файловые группы базы данных далее в этой статье.
Параметры SIZE, MAXSIZE и FILEGROWTH доступны, если путь к файлу указан в формате UNC.
Если файл находится в необработанной секции, аргумент os_file_name должен указывать только букву диска существующей необработанной секции. В каждой необработанной секции может быть создан только один файл данных.
Необработанные секции не поддерживаются в SQL Server 2014 и более поздних версиях.
Файлы данных не следует размещать в файловых системах со сжатием, за исключением случаев, когда файлы являются вторичными и доступны только для чтения или вся база данных доступна только для чтения. Файлы журналов ни в коем случае не должны размещаться в сжатых файловых системах.
‘filestream_path‘
Для файловой группы FILESTREAM параметр FILENAME указывает путь, где будут храниться данные FILESTREAM. Должен существовать путь вплоть до последнего каталога, но последний каталог существовать не должен. Например, если указан путь C:\MyFiles\MyFilestreamData , то каталог C:\MyFiles должен существовать до выполнения инструкции ALTER DATABASE, но папка MyFilestreamData не должна существовать.
Файловую группу и файл ( ) необходимо создавать в одной инструкции.
Свойства SIZE и FILEGROWTH к файловой группе FILESTREAM неприменимы.
SIZE size
Указывает размер файла.
Параметр SIZE не может указываться, если аргумент os_file_name задан как путь в формате UNC. Свойство SIZE к файловой группе FILESTREAM не применяется.
Задает начальный размер файла.
Если для первичного файла не задан аргумент size, ядро СУБД использует размер первичного файла, указанный в базе данных model . Размер базы данных model по умолчанию — 8 МБ (начиная с SQL Server 2016 (13.x)) или 1 МБ (для более ранних версий). Если указан вторичный файл данных или журнала, но для этого файла не указан аргумент size, ядро СУБД задает размер файла равным 8 МБ (начиная с SQL Server 2016 (13.x)) или 1 МБ (для более ранних версий). Размер, указанный для первичного файла, не должен быть меньше размера первичного файла базы данных model .
Можно использовать суффиксы килобайт (KB), мегабайт (MB), гигабайт (GB) и терабайт (TB). По умолчанию — MБ. Укажите целое число. Не включайте десятичную дробь. size — целочисленное значение. Для значений, превышающих 2 147 483 647, используйте более крупные единицы измерения.
MAXSIZE max_size
Задает максимальный размер, до которого может расти файл. Параметр MAXSIZE не может указываться, если аргумент os_file_name задан как путь в формате UNC.
Максимальный размер файла. Можно использовать суффиксы KB, MB, GB и TB. По умолчанию — MБ. Укажите целое число. Не включайте десятичную дробь. Если аргумент max_size не указан, файл будет увеличиваться до исчерпания свободного пространства на диске. max_size — целочисленное значение. Для значений, превышающих 2 147 483 647, используйте более крупные единицы измерения.
Указывает, что файл может расти вплоть до заполнения диска. В SQL Server файл журнала, указанный с неограниченным ростом, имеет максимальный размер 2 ТБ, а файл данных имеет максимальный размер 16 ТБ.
Ограничения размера отсутствуют, если этот параметр указан для контейнера FILESTREAM. Размер продолжает увеличиваться до полного заполнения диска.
FILEGROWTH growth_increment
Задает автоматический шаг роста файла. Значение параметра FILEGROWTH для файла не может превосходить значение параметра MAXSIZE. Параметр FILEGROWTH не может указываться, если аргумент os_file_name задан как путь в формате UNC. Свойство FILEGROWTH к файловой группе FILESTREAM не применяется.
Объем пространства, добавляемого в файл каждый раз, когда требуется новое пространство.
Значение может быть указано в килобайтах, мегабайтах, гигабайтах, терабайтах или процентах (%). Если указано число без суффикса MB, KB или %, то по умолчанию используется MB. Если размер указан в процентах (%), то шаг роста — это заданная часть в процентах от размера файла во время этого файла. Указанный размер округляется до ближайших 64 КБ, минимальное значение — 64 КБ.
Значение 0 указывает, что автоматическое приращение отключено и добавление пространства запрещено.
Если параметр FILEGROWTH не задан, доступны следующие значения по умолчанию.
| Версия | Значения по умолчанию |
|---|---|
| Начиная с SQL Server 2016 (13.x) | Данные — 64 МБ. Файлы журналов — 64 МБ. |
| Начиная с SQL Server 2005 (9.x) | Данные — 1 МБ. Файлы журналов — 10 %. |
| До SQL Server 2005 (9.x) | Данные — 10 %. Файлы журналов — 10 %. |
Управляет свойствами файловой группы. Файловая группа не может указываться для моментального снимка базы данных.
FILEGROUP filegroup_name
Логическое имя файловой группы.
Аргумент filegroup_name должен быть уникальным в базе данных и не может быть именем PRIMARY или PRIMARY_LOG, предоставленным системой. Имя может быть символом или константой Юникода, а также обычным идентификатором или идентификатором с разделителями. Имя должно соответствовать правилам для идентификаторов.
Указывает, что файловая группа хранит большие двоичные объекты (BLOB) FILESTREAM в файловой системе.
Задает именованную файловую группу как файловую группу по умолчанию в базе данных.
Область применения: SQL Server 2014 (12.x) и более поздних версий
Указывает, что файловая группа хранит данные memory_optimized в файловой системе. Дополнительные сведения см. в статье Обзор оптимизации в памяти и сценарии использования. В каждой базе данных может присутствовать только одна файловая группа MEMORY_OPTIMIZED_DATA. Примеры кода по созданию файловых групп для хранения оптимизированных для памяти данных см. в разделе Создание таблиц, оптимизированных для памяти, и хранимых процедур, скомпилированных в собственном коде.
database_snapshot_name
Имя нового моментального снимка базы данных. Имена моментальных снимков баз данных должны быть уникальны внутри экземпляра SQL Server и соответствовать правилам для идентификаторов. database_snapshot_name не может превышать 128 символов.
ON ( NAME =logical_file_name, FILENAME =’os_file_name‘) [ . n ]
При создании моментального снимка базы данных указывает список файлов в базе данных-источнике. Для работы моментального снимка все файлы данных должны задаваться отдельно. Однако не разрешается указывать файлы журналов для моментальных снимков базы данных. В моментальных снимках базы данных не поддерживаются файловые группы FILESTREAM. Если файл данных FILESTREAM задействован в предложении CREATE DATABASE ON, выполнение этой инструкции завершится сбоем и приведет к возникновению ошибки.
Описания параметров NAME и FILENAME и их значений см. в описаниях соответствующих значений .
При создании моментального снимка базы данных не разрешается применять другие параметры и ключевое слово PRIMARY.
AS SNAPSHOT OF source_database_name
Обозначает, что создаваемая база данных является моментальным снимком базы данных-источника, указанной аргументом source_database_name. Моментальный снимок и база данных-источник должны находиться в одном экземпляре.
До SQL Server 2019 исходная база данных для моментального снимка базы данных не может содержать файловую группу MEMORY_OPTIMIZED_DATA. Поддержка моментальных снимков базы данных в памяти была добавлена в SQL Server 2019.
Дополнительные сведения см. в описании моментальных снимков базы данных.
Замечания
Резервную копию базы данных master необходимо создавать каждый раз при создании, изменении или удалении пользовательской базы данных.
Инструкция CREATE DATABASE должна выполняться в режиме автоматической фиксации (режим управления транзакциями по умолчанию) и не разрешена в явной или неявной транзакции.
Для создания базы данных и файлов, в которых будет храниться база данных, можно использовать одну инструкцию CREATE DATABASE . В SQL Server инструкция CREATE DATABASE реализуется посредством следующих действий:
- SQL Server использует копию базы данных model для инициализации базы данных и ее метаданных.
- Базе данных назначается идентификатор GUID компонента Service Broker.
- Ядро СУБД затем заполняет остальную часть базы данных пустыми страницами, за исключением страниц, содержащих внутренние данные с описанием способа использования пространства в базе данных.
В экземпляре SQL Server можно указать не более 32 767 баз данных.
У каждой базы данных есть владелец, который может выполнять специальные действия в базе данных. Владельцем является пользователь, создавший базу данных. Владельца базы данных можно изменить с помощью инструкции ALTER AUTHORIZATION.
Для обеспечения полной функциональности базы данных некоторые функции базы данных зависят от возможностей файловой системы. Далее приведено несколько примеров функций, зависящих от набора функций файловой системы.
- DBCC CHECKDB
- FileStream
- Оперативное резервное копирование с помощью VSS и моментальных снимков файлов
- Создание моментального снимка базы данных
- Файловая группа данных, оптимизированных для памяти
Файлы и файловые группы базы данных
В каждой базе данных имеется по крайней мере два файла (первичный файл и файл журнала транзакций) и по крайней мере одна файловая группа. Для каждой базы данных может указываться не более 32 767 файлов и 32 767 файловых групп.
При создании базы данных файлы данных следует делать как можно большего размера, в соответствии с максимальным предполагаемым объемом данных в базе данных.
Для хранения файлов базы данных SQL Server рекомендуется использовать сеть хранения данных (SAN), сеть на основе iSCSI или локально подключенный диск, так как в этой конфигурации достигаются оптимальные производительность и надежность SQL Server.
Моментальные снимки базы данных
С помощью инструкции CREATE DATABASE можно создать статическое представление, доступное только для чтения, моментальный снимокбазы данных-источника. Моментальный снимок базы данных согласован с базой данных-источником на уровне транзакций в том виде, в котором она существовала в момент создания моментального снимка. База данных-источник может иметь несколько моментальных снимков.
При создании моментального снимка инструкция CREATE DATABASE не может обращаться к файлам журналов, файлам вне сети, восстанавливаемым файлам и несуществующим файлам.
Если создание моментального снимка базы данных не удается, моментальный снимок помечается как подозрительный и подлежит удалению. Дополнительные сведения см. в описании DROP DATABASE.
Каждый моментальный снимок существует до тех пор, пока не будет удален с помощью инструкции DROP DATABASE .
Параметры базы данных
Каждый раз при создании базы данных автоматически устанавливаются несколько параметров базы данных. См. список параметров ALTER DATABASE SET.
База данных модели и создание новых баз данных
Все определяемые пользователем объекты в базе данных model копируются во вновь создаваемые базы данных. В базу данных model можно добавлять любые объекты, такие как таблицы, представления, хранимые процедуры, типы данных и т. д., которые войдут в состав всех вновь созданных баз данных.
Если инструкция CREATE DATABASE указана без дополнительных параметров размера, то создается первичный файл данных того же размера, что и первичный файл в базе данных model .
Если не указан параметр FOR ATTACH , то каждая новая база данных наследует значения параметров из базы данных model . Например, параметру автоматического сжатия базы данных задано значение true в базе данных model и во всех вновь создаваемых базах данных. Если изменить параметры в базе данных model , они будут использоваться при создании новых баз данных. Операции, вносящие изменения в базу данных model , не влияют на существующие базы данных. Если параметр FOR ATTACH задан в инструкции CREATE DATABASE, то новая база данных наследует значения параметров исходной базы данных.
Просмотр сведений о базе данных
Для возврата сведений о базах данных, файлах и файловых группах можно использовать представления каталогов, системные функции и системные хранимые процедуры. Дополнительные сведения см. в описании представлений системы.
Разрешения
Требуется разрешение CREATE DATABASE , CREATE ANY DATABASE или ALTER ANY DATABASE .
В целях сохранения управления над использованием диска в экземпляре SQL Server разрешение на создание баз данных обычно предоставляется небольшому числу учетных записей входа.
В следующем примере предоставляется разрешение на создание базы данных для пользователя Fay базы данных.
USE master; GO GRANT CREATE DATABASE TO [Fay]; GO
Разрешения на файлы данных и журналов
В SQL Server для файлов данных и журналов каждой базы данных заданы определенные разрешения. Следующие разрешения задаются при применении следующих операций к базе данных:
- Вложен
- Объекты резервного копирования
- Создано
- Отсоединен
- Изменение для добавления нового файла
- Восстановлено
Эти разрешения предотвращают случайное повреждение файлов, хранящихся в каталоге с открытыми разрешениями.
Microsoft SQL Server 2005 Express не задает разрешения на данные и файлы журнала.
Примеры
О. Создание базы данных без указания файлов
В следующем примере создается база данных mytest и соответствующие первичный файл и файл журнала транзакций. Так как инструкция не включает элементы , файл базы данных-источника имеет тот же размер, что и первичный файл базы данных model . Размер журнала транзакций устанавливается как наибольшее из следующих значений: 512 КБ или 25 % размера первичного файла данных. Поскольку параметр MAXSIZE не задан, файлы могут увеличиваться до заполнения всего свободного места на диске. Этот пример также демонстрирует, как удалить базу данных mytest , если она существует, перед созданием базы данных mytest .
USE master; GO IF DB_ID (N'mytest') IS NOT NULL DROP DATABASE mytest; GO CREATE DATABASE mytest; GO -- Verify the database files and sizes SELECT name, size, size*1.0/128 AS [Size in MBs] FROM sys.master_files WHERE name = N'mytest'; GO
B. Создание базы данных, в которой заданы файлы данных и журнала транзакций
В следующем примере создается база данных Sales . Ключевое слово PRIMARY не использовано, поэтому первый файл ( Sales_dat ) становится первичным файлом. Поскольку в параметре SIZE для файла Sales_dat не заданы суффиксы MB и KB, используется значение MB и пространство выделяется в мегабайтах. Резервную копию базы данных Sales_log выделено в мегабайтах, потому что суффикс MB явно указан в параметре SIZE .
USE master; GO CREATE DATABASE Sales ON ( NAME = Sales_dat, FILENAME = 'C:\Program Files\Microsoft SQL Server\MSSQL13.MSSQLSERVER\MSSQL\DATA\saledat.mdf', SIZE = 10, MAXSIZE = 50, FILEGROWTH = 5 ) LOG ON ( NAME = Sales_log, FILENAME = 'C:\Program Files\Microsoft SQL Server\MSSQL13.MSSQLSERVER\MSSQL\DATA\salelog.ldf', SIZE = 5MB, MAXSIZE = 25MB, FILEGROWTH = 5MB ) ; GO
C. Создание базы данных, в которой указаны несколько файлов данных и журналов транзакций
Следующий пример создает базу данных Archive , имеющую 3 файла данных объемом по 100-MB каждый и два файла журнала транзакций по 100-MB . Первичный файл является первым файлом в списке и явно задан ключевым словом PRIMARY . Файлы журналов транзакций заданы следующими ключевыми словами LOG ON . Обратите внимание на расширения, используемые для файлов в параметре FILENAME : .mdf для первичных файлов данных, .ndf для вторичных файлов данных и .ldf для файлов журнала транзакций. В этом примере база данных размещается на диске D: , а не вместе с базой данных master .
USE master; GO CREATE DATABASE Archive ON PRIMARY (NAME = Arch1, FILENAME = 'D:\SalesData\archdat1.mdf', SIZE = 100MB, MAXSIZE = 200, FILEGROWTH = 20), ( NAME = Arch2, FILENAME = 'D:\SalesData\archdat2.ndf', SIZE = 100MB, MAXSIZE = 200, FILEGROWTH = 20), ( NAME = Arch3, FILENAME = 'D:\SalesData\archdat3.ndf', SIZE = 100MB, MAXSIZE = 200, FILEGROWTH = 20) LOG ON (NAME = Archlog1, FILENAME = 'D:\SalesData\archlog1.ldf', SIZE = 100MB, MAXSIZE = 200, FILEGROWTH = 20), (NAME = Archlog2, FILENAME = 'D:\SalesData\archlog2.ldf', SIZE = 100MB, MAXSIZE = 200, FILEGROWTH = 20) ; GO
D. Создание базы данных с файловыми группами
В следующем примере создается база данных Sales , в которой есть следующие файловые группы:
- Первичная файловая группа с файлами Spri1_dat и Spri2_dat . Для этих файлов задана величина приращения FILEGROWTH, равная 15% .
- Файловая группа с именем SalesGroup1 и файлами SGrp1Fi1 и SGrp1Fi2 .
- Файловая группа с именем SalesGroup2 и файлами SGrp2Fi1 и SGrp2Fi2 .
В этом примере файлы данных и журналов размещаются на различных дисках с целью повышения производительности.
USE master; GO CREATE DATABASE Sales ON PRIMARY ( NAME = SPri1_dat, FILENAME = 'D:\SalesData\SPri1dat.mdf', SIZE = 10, MAXSIZE = 50, FILEGROWTH = 15% ), ( NAME = SPri2_dat, FILENAME = 'D:\SalesData\SPri2dt.ndf', SIZE = 10, MAXSIZE = 50, FILEGROWTH = 15% ), FILEGROUP SalesGroup1 ( NAME = SGrp1Fi1_dat, FILENAME = 'D:\SalesData\SG1Fi1dt.ndf', SIZE = 10, MAXSIZE = 50, FILEGROWTH = 5 ), ( NAME = SGrp1Fi2_dat, FILENAME = 'D:\SalesData\SG1Fi2dt.ndf', SIZE = 10, MAXSIZE = 50, FILEGROWTH = 5 ), FILEGROUP SalesGroup2 ( NAME = SGrp2Fi1_dat, FILENAME = 'D:\SalesData\SG2Fi1dt.ndf', SIZE = 10, MAXSIZE = 50, FILEGROWTH = 5 ), ( NAME = SGrp2Fi2_dat, FILENAME = 'D:\SalesData\SG2Fi2dt.ndf', SIZE = 10, MAXSIZE = 50, FILEGROWTH = 5 ) LOG ON ( NAME = Sales_log, FILENAME = 'E:\SalesLog\salelog.ldf', SIZE = 5MB, MAXSIZE = 25MB, FILEGROWTH = 5MB ) ; GO
Д. Присоединение базы данных
В следующем примере база данных Archive , созданная в примере Е, отсоединяется, а затем присоединяется с помощью предложения FOR ATTACH . База данных Archive была определена с несколькими файлами данных и журналов. Однако поскольку местоположение файлов не изменилось со времени их создания, в предложении FOR ATTACH должен быть задан только первичный файл. Начиная с SQL Server 2005 (9.x) любые полнотекстовые файлы, являющиеся частью подключаемой базы данных, будут подключены вместе с базой данных.
USE master; GO sp_detach_db Archive; GO CREATE DATABASE Archive ON (FILENAME = 'D:\SalesData\archdat1.mdf') FOR ATTACH ; GO
Е. Создание моментального снимка базы данных
В следующем примере создается моментальный снимок базы данных sales_snapshot0600 . Моментальный снимок базы данных предназначен только для чтения, поэтому нельзя задать файл журнала. В соответствии с синтаксисом задается каждый файл базы данных-источника, а файловые группы не указываются.
База данных-источник для этого примера — Sales , созданная в примере Г.
USE master; GO CREATE DATABASE sales_snapshot0600 ON ( NAME = SPri1_dat, FILENAME = 'D:\SalesData\SPri1dat_0600.ss'), ( NAME = SPri2_dat, FILENAME = 'D:\SalesData\SPri2dt_0600.ss'), ( NAME = SGrp1Fi1_dat, FILENAME = 'D:\SalesData\SG1Fi1dt_0600.ss'), ( NAME = SGrp1Fi2_dat, FILENAME = 'D:\SalesData\SG1Fi2dt_0600.ss'), ( NAME = SGrp2Fi1_dat, FILENAME = 'D:\SalesData\SG2Fi1dt_0600.ss'), ( NAME = SGrp2Fi2_dat, FILENAME = 'D:\SalesData\SG2Fi2dt_0600.ss') AS SNAPSHOT OF Sales ; GO
G. Создание базы данных и назначение имени и параметров сортировки
В следующем примере создается база данных MyOptionsTest . Указано имя параметров сортировки, а параметрам TRUSTYWORTHY и DB_CHAINING присвоено значение ON .
USE master; GO IF DB_ID (N'MyOptionsTest') IS NOT NULL DROP DATABASE MyOptionsTest; GO CREATE DATABASE MyOptionsTest COLLATE French_CI_AI WITH TRUSTWORTHY ON, DB_CHAINING ON; GO --Verifying collation and option settings. SELECT name, collation_name, is_trustworthy_on, is_db_chaining_on FROM sys.databases WHERE name = N'MyOptionsTest'; GO
H. Присоединение перемещенного полнотекстового каталога
В следующем примере показано, как присоединить полнотекстовый каталог AdvWksFtCat наряду с файлами данных и журнала AdventureWorks2022 . В этом примере полнотекстовый каталог перемещается из расположения по умолчанию в новое расположение c:\myFTCatalogs . Файлы данных и журналов остаются в расположениях по умолчанию.
USE master; GO --Detach the AdventureWorks2022 database sp_detach_db AdventureWorks2022; GO -- Physically move the full text catalog to the new location. --Attach the AdventureWorks2022 database and specify the new location of the full-text catalog. CREATE DATABASE AdventureWorks2022 ON (FILENAME = 'c:\Program Files\Microsoft SQL Server\MSSQL13.MSSQLSERVER\MSSQL\Data\AdventureWorks2022_data.mdf'), (FILENAME = 'c:\Program Files\Microsoft SQL Server\MSSQL13.MSSQLSERVER\MSSQL\Data\AdventureWorks2022_log.ldf'), (FILENAME = 'c:\myFTCatalogs\AdvWksFtCat') FOR ATTACH; GO
I. Создание базы данных, имеющей файловую группу строк и две файловые группы FILESTREAM
В следующем примере создается база данных FileStreamDB . Эта база данных создается с одной файловой группой строк и двумя файловыми группами FILESTREAM. Каждая файловая группа содержит один файл.
- Группа FileStreamDB_data содержит данные строк. В нее входит один файл FileStreamDB_data.mdf , расположенный в пути по умолчанию.
- Группа FileStreamPhotos содержит данные FILESTREAM. В нее входит два контейнера данных FILESTREAM, FSPhotos , расположенный в папке C:\MyFSfolder\Photos , и FSPhotos2 , расположенный в папке D:\MyFSfolder\Photos . Она отмечена как файловая группа FILESTREAM по умолчанию.
- Группа FileStreamResumes содержит данные FILESTREAM. Она содержит один контейнер данных FILESTREAM — FSResumes , расположенный в папке C:\MyFSfolder\Resumes .
USE master; GO -- Get the SQL Server data path. DECLARE @data_path nvarchar(256); SET @data_path = (SELECT SUBSTRING(physical_name, 1, CHARINDEX(N'master.mdf', LOWER(physical_name)) - 1) FROM master.sys.master_files WHERE database_id = 1 AND file_id = 1); -- Execute the CREATE DATABASE statement. EXECUTE ('CREATE DATABASE FileStreamDB ON PRIMARY ( NAME = FileStreamDB_data ,FILENAME = ''' + @data_path + 'FileStreamDB_data.mdf'' ,SIZE = 10MB ,MAXSIZE = 50MB ,FILEGROWTH = 15% ), FILEGROUP FileStreamPhotos CONTAINS FILESTREAM DEFAULT ( NAME = FSPhotos ,FILENAME = ''C:\MyFSfolder\Photos'' -- SIZE and FILEGROWTH should not be specified here. -- If they are specified an error will be raised. , MAXSIZE = 5000 MB ), ( NAME = FSPhotos2 , FILENAME = ''D:\MyFSfolder\Photos'' , MAXSIZE = 10000 MB ), FILEGROUP FileStreamResumes CONTAINS FILESTREAM ( NAME = FileStreamResumes ,FILENAME = ''C:\MyFSfolder\Resumes'' ) LOG ON ( NAME = FileStream_log ,FILENAME = ''' + @data_path + 'FileStreamDB_log.ldf'' ,SIZE = 5MB ,MAXSIZE = 25MB ,FILEGROWTH = 5MB )' ); GO
J. Создание базы данных, имеющей файловую группу FILESTREAM с несколькими файлами
В следующем примере создается база данных BlobStore1 . Эта база данных создается с одной файловой группой строк и одной файловой группой FILESTREAM, FS . Файловая группа FILESTREAM содержит два файла, FS1 и FS2 . Затем выполняется изменение базы данных путем добавления третьего файла, FS3 , в файловую группу FILESTREAM.
USE master; GO CREATE DATABASE [BlobStore1] CONTAINMENT = NONE ON PRIMARY ( NAME = N'BlobStore1', FILENAME = N'C:\BlobStore\BlobStore1.mdf', SIZE = 100MB, MAXSIZE = UNLIMITED, FILEGROWTH = 1MB ), FILEGROUP [FS] CONTAINS FILESTREAM DEFAULT ( NAME = N'FS1', FILENAME = N'C:\BlobStore\FS1', MAXSIZE = UNLIMITED ), ( NAME = N'FS2', FILENAME = N'C:\BlobStore\FS2', MAXSIZE = 100MB ) LOG ON ( NAME = N'BlobStore1_log', FILENAME = N'C:\BlobStore\BlobStore1_log.ldf', SIZE = 100MB, MAXSIZE = 1GB, FILEGROWTH = 1MB ); GO ALTER DATABASE [BlobStore1] ADD FILE ( NAME = N'FS3', FILENAME = N'C:\BlobStore\FS3', MAXSIZE = 100MB ) TO FILEGROUP [FS]; GO
Далее
- ALTER DATABASE
- Присоединение и отсоединение базы данных
- DROP DATABASE
- EVENTDATA
- ALTER AUTHORIZATION
- sp_detach_db
- sp_removedbreplication
- Моментальные снимки базы данных
- Перемещение файлов базы данных
- Базы данных
- Данные большого двоичного объекта
Создание базы геоданных в SQL Server
Чтобы создать базу геоданных в базе данных Microsoft SQL Server , запустите инструмент геообработки или скрипт Python из клиентского приложения ArcGIS. Начните с чтения требований, а затем выполните действия, соответствующие вашей ситуации.
Предварительные условия
- Убедитесь в том, что используемые вами версии ArcGIS, SQL Server и операционной системы соответствуют требованиям.
- Обзаведитесь ODBC-клиентом SQL Server , необходимым для подключения к версии SQL Server , которая используется вами для хранения базы геоданных
- Получите файл ключей ArcGIS Server и поместите его в такое место, где он будет доступен для клиента ArcGIS, который будет использоваться для создания базы геоданных.
- Определите, кто будет создавать базу геоданных, так как это влияет на то, кто создавал базу данных и каким инструментом база данных создавалась. Используйте инструкции, подходящие для вашей ситуации.
- Вы администратор SQL Server и базы геоданных.
- Администратор SQL Server создает базу данных; администратор базы геоданных создает базу геоданных.
Вы администратор SQL Server и базы геоданных.
Если вы выполняете роль администраторов базы данных и геоданных и, следовательно, знаете пароли обоих учетных записей, вы можете использовать инструмент геообработки Создать многопользовательскую базу геоданных или скрипт Python для создания базы геоданных в базе SQL Server .
Инструмент Создать многопользовательскую базу геоданных облегчает настройку базы геоданных, поскольку создает объекты базы данных и предоставляет вам необходимые права. Для этого инструмент использует следующие настройки по умолчанию и создает следующие объекты базы данных:
- Он создает файлы базы данных ( MDF и LDF ) в месте установки SQL Server на сервере по умолчанию.
- Он включает опции базы данных SQL Server READ_COMMITTED_SNAPSHOT и ALLOW_SNAPSHOT_ISOLATION.
- Он применяет размеры файлов базы данных по умолчанию, заданные для модели базы данных SQL Server или задает 500 МБ для файла MDF и 125 МБ для файла LDF , в зависимости от того, что больше.
- Если вы решили создать базу геоданных в схеме sde, инструмент создаст в экземпляре учетную запись sde с аутентификацией на SQL Server , создаст в базе данных пользователя sde и сопоставит его с учетной записью sde, создаст в базе данных схему sde и предоставит пользователю sde права для создания базы геоданных и сброса подключений к экземпляру SQL Server .
- Он создает объекты базы геоданных в экземпляре SQL Server .
Перед тем как запустить инструмент или скрипт, необходимо установить и настроить экземпляр SQL Server .
Установка и конфигурация SQL Server
Перед тем, как приступить к созданию базы геоданных, необходимо установить SQL Server и настроить экземпляр. Настройка экземпляра зависит от специфических требований организации. Однако имейте в виду, что экземпляр SQL Server должен использовать чувствительное к регистру сопоставление.
После установки вами или вашей службой IT SQL Server , убедитесь, что экземпляр SQL Server настроен на прием удаленных подключений; по умолчанию удаленные подключения не разрешены.
Обратитесь к документации Microsoft для получения информации об установке и настройке SQL Server .
После установки и настройки SQL Server установите клиенты ArcGIS и SQL Server .
Установка клиентов
Вы можете установить ArcGIS Desktop ( Desktop Standard или Desktop Advanced ), ArcGIS Engine с дополнительным модулем Geodatabase, или ArcGIS Server (enterprise edition) и запустить скрипт Python на любом из них, чтобы создать базу геоданных. Если вы хотите запустить инструмент геообработки Создать многопользовательскую базу геоданных вместо скрипта, установите ArcGIS Desktop .
Примечание:
Вам потребуется файл ключей ArcGIS Server (enterprise) для авторизации вашей базы геоданных в следующем разделе. Даже если вы не запустите скрипт Python с компьютера ArcGIS Server для создания базы геоданных, установите и авторизуйте ArcGIS Server для того, чтобы получить файл ключей. Может потребоваться скопировать файл с ключами с ArcGIS Server в директорию, к которой есть доступ у инструмента геообработки Создать многопользовательскую базу геоданных .
В большинстве случаев клиентские приложения ArcGIS устанавливаются не тот компьютер, где стоит SQL Server . Поэтому, для подключения к базе данных на клиентском компьютере ArcGIS должен быть установлен поддерживающийся клиент SQL Server . См. Системные требования ArcGIS к SQL Server для определения версии клиента SQL Server , позволяющей подключиться к используемой версии SQL Server .
Чтобы подключиться к SQL Server на компьютере Microsoft Windows , можно загрузить клиент SQL Server с My Esri или из Microsoft Download Center. Чтобы подключиться к SQL Server на компьютере с Linux , можно загрузить клиент SQL Server из Microsoft Download Center. Следуйте инструкциям Microsoft по установке клиента SQL Server на вашем компьютере.
Выполните следующие действия, чтобы установить и настроить клиент, который вам требуется для создания базы геоданных. Если у вас нет прав доступа для установки программного обеспечения, это должна сделать ваша служба IT.
- Установите клиент ArcGIS, который собираетесь использовать для создания базы геоданных. Следуйте инструкциям руководств по установке программного обеспечения.
- Установите клиент SQL Server на клиентском компьютере ArcGIS. Если вы устанавливаете клиент SQL Server на 64-разрядную операционную систему, используйте exe-файл 64-разрядного клиента SQL Server . Этот файл выполнит установку и 32-разрядного, и 64-разрядного клиентов, что позволит им работать как с 32-разрядными приложениями, такими как ArcMap , так и с 64-разрядными приложениями ArcGIS, такими как ArcGIS Server или ArcGIS Pro . Если вы запускаете 32-разрядный клиент SQL Server на 64-разрядной операционной системе, произойдет сбой.
Теперь вы можете создать базу геоданных.
Создание базы геоданных
Вы можете запустить инструмент геообработки Создать многопользовательскую базу геоданных из ArcGIS Desktop или запустить скрипт Python из ArcGIS Desktop , ArcGIS Server или клиента ArcGIS Engine для создания базы данных и геоданных.
Запуск инструмента Создать многопользовательскую базу геоданных
Если у вас есть доступ к ArcGIS Desktop , для создания базы геоданных вы можете запустить инструмент геообработки.
Следуйте приведенным шагам по созданию базы геоданных с помощью инструмента Создать многопользовательскую базу геоданных в ArcMap :
- Запустите ArcMap или ArcCatalog .
- Откройте инструмент Создать многопользовательскую базу геоданных . Этот инструмент вы найдете в группе инструментов Администрирование баз геоданных набора инструментов Управление данными.
- Из ниспадающего списка Платформа базы данных выберите SQL Server .
- Введите имя экземпляра SQL Server , к которому вы будете подключаться, в текстовое поле Экземпляр .
- В поле База данных введите имя базы данных, в которой вы хотите хранить базу геоданных. Если на экземпляре SQL Server нет базы данных с этим именем, то она будет создана. Если база данных существует, инструмент использует ее для хранения базы геоданных.
- Подключитесь к SQL Server в качестве системного администратора. Используйте либо учетную запись с аутентификацией средствами операционной системы, включенную в фиксированную серверную роль sysadmin в SQL Server , либо введите имя пользователя базы данных и пароль пользователя sysadmin.
- Для входа с использованием учетной записи с аутентификацией в операционной системе, щелкните Аутентификация средствами операционной системы . Чтобы использовать эту опцию, необходимо выполнить вход в Windows с соответствующим именем.
- Для входа в качестве sysadmin, введите имя пользователя sysadmin в текстовом окне Администратор базы данных и соответствующий пароль в текстовом окне Пароль администратора базы данных .
- Выберите схему, которая будет содержать базу геоданных.
- Если вы хотите, чтобы администратором базы геоданных был пользователь с именем sde, и чтобы база геоданных хранилась в схеме пользователя sde, выберите опцию Схема, принадлежащая Sde .
- Если вы хотите, чтобы администратором базы геоданных был пользователь dbo, и чтобы база геоданных хранилась в схеме dbo, отключите опцию Схема SDE .
Подробнее о хранении базы геоданных в схемах sde или dbo см. в разделе Сравнение владельцев баз геоданных на SQL Server .
При выборе схемы sde в текстовом окне Администратор базы геоданных будет автоматически введено sde. Если пользователя с таким именем нет, инструмент создаст его и соответствующую схему, а также предоставит ему права доступа, необходимые для создания базы геоданных.
Если вы используете аутентификацию в базе данных и схему dbo для хранения базы геоданных, введите имя пользователя, являющегося dbo в экземпляре SQL Server в текстовом окне Администратор базы геоданных .
Если вы используете для подключения к базе данных аутентификацию средствами операционной системы, то для создания базы геоданных в схеме dbo ваша текущая учетная запись должна быть включена в фиксированную серверную роль sysadmin SQL Server .
Если не задана существующая база данных, в директории SQL Server по умолчанию создается база данных и файлы журнала. В базе данных создается база геоданных. Если вы выбрали базу геоданных в схеме sde, в базе данных создается учетная запись sde с аутентификацией в базе данных, пользователь базы данных и схема.
Сообщения, относящиеся к созданию базы геоданных, записываются в файл sde_setup.log , который создается в каталоге, указанном для переменной %TEMP%, на том компьютере, где запущен инструмент. При наличии проблем с созданием базы геоданных изучите этот файл журнала для их устранения.
Запуск скрипта Python
Вы можете скопировать, сохранить и запустить указанный здесь скрипт для создания базы геоданных из ArcGIS Desktop (Standard или Advanced), ArcGIS Server или из ArcGIS Engine (с дополнительным модулем Geodatabase).
-
Создайте текстовый файл на клиентском компьютере ArcGIS и скопируйте следующий скрипт в файл.
""" Name: create_enterprise_gdb.py Description: Provide connection information to a DBMS instance and create an enterprise geodatabase. Type create_enterprise_gdb.py -h or create_enterprise_gdb.py --help for usage """ # Import system modules import arcpy import os import optparse import sys # Define usage and version parser = optparse.OptionParser(usage = "usage: %prog [Options]", version="%prog 1.0 for " + arcpy.GetInstallInfo()['Version'] ) #Define help and options parser.add_option ("--DBMS", dest="Database_type", type="choice", choices=['SQL_SERVER', 'ORACLE', 'POSTGRESQL', ''], default="", help="Type of enterprise DBMS: SQL_SERVER, ORACLE, or POSTGRESQL.") parser.add_option ("-i", dest="Instance", type="string", default="", help="DBMS instance name") parser.add_option ("-D", dest="Database", type="string", default="none", help="Database name: Do not specify for Oracle") parser.add_option ("--auth", dest="Account_authentication", type ="choice", choices=['DATABASE_AUTH', 'OPERATING_SYSTEM_AUTH'], default='DATABASE_AUTH', help="Authentication type options (case-sensitive): DATABASE_AUTH, OPERATING_SYSTEM_AUTH. Default=DATABASE_AUTH") parser.add_option ("-U", dest="Dbms_admin", type="string", default="", help="DBMS administrator user") parser.add_option ("-P", dest="Dbms_admin_pwd", type="string", default="", help="DBMS administrator password") parser.add_option ("--schema", dest="Schema_type", type="choice", choices=['SDE_SCHEMA', 'DBO_SCHEMA'], default="SDE_SCHEMA", help="Schema type applies to geodatabases in SQL Server only. Type SDE_SCHEMA to create geodatabase in SDE schema or type DBO_SCHEMA to create geodatabase in DBO schema. Default=SDE_SCHEMA") parser.add_option ("-u", dest="Gdb_admin", type="string", default="", help="Geodatabase administrator user name; Must always be sde for PostgreSQL, sde-schema geodatabases in SQL Server, and sde geodatabase in Oracle") parser.add_option ("-p", dest="Gdb_admin_pwd", type="string", default="", help="Geodatabase administrator password") parser.add_option ("-t", dest="Tablespace", type="string", default="", help="Tablespace name; For PostgreSQL, type name of existing tablespace in which to store database. If no tablespace name specified, pg_default is used. For Oracle, type name of existing tablespace, or, if tablespace with specified name does not exist, it will be created and set as the default tablespace for the sde user. If no tablespace name is specified, SDE_TBS tablespace is created and set as sde user default. Tablespace name not supported for SQL Server.") parser.add_option ("-l", dest="Authorization_file", type="string", default="", help="Full path and name of authorization file; file created when ArcGIS Server Enterprise authorized, and stored in \\Program Files\ESRI\License\sysgen on Windows or /arcgis/server/framework/runtime/.wine/drive_c/Program Files/ESRI/License/sysgen on Linux") # Check if value entered for option try: (options, args) = parser.parse_args() #Check if no system arguments (options) entered if len(sys.argv) == 1: print("%s: error: %s\n" % (sys.argv[0], "No command options given")) parser.print_help() sys.exit(3) #Usage parameters for spatial database connection database_type = options.Database_type.upper() instance = options.Instance database = options.Database.lower() account_authentication = options.Account_authentication.upper() dbms_admin = options.Dbms_admin dbms_admin_pwd = options.Dbms_admin_pwd schema_type = options.Schema_type.upper() gdb_admin = options.Gdb_admin gdb_admin_pwd = options.Gdb_admin_pwd tablespace = options.Tablespace license = options.Authorization_file if( database_type ==""): print(" \n%s: error: \n%s\n" % (sys.argv[0], "DBMS type (--DBMS) must be specified.")) parser.print_help() sys.exit(3) if (license == ""): print(" \n%s: error: \n%s\n" % (sys.argv[0], "Authorization file (-l) must be specified.")) parser.print_help() sys.exit(3) if(database_type == "SQL_SERVER"): if(schema_type == "SDE_SCHEMA" and gdb_admin.lower() != "sde"): print("\n%s: error: %s\n" % (sys.argv[0], "To create SDE schema on SQL Server, geodatabase administrator must be SDE.")) sys.exit(3) if (schema_type == "DBO_SCHEMA" and gdb_admin != ""): print("\nWarning: %s\n" % ("Ignoring geodatabase administrator specified when creating DBO schema. ")) if( account_authentication == "DATABASE_AUTH" and dbms_admin == ""): print("\n%s: error: %s\n" % (sys.argv[0], "DBMS administrator must be specified with database authentication")) sys.exit(3) if( account_authentication == "OPERATING_SYSTEM_AUTH" and dbms_admin != ""): print("\nWarning: %s\n" % ("Ignoring DBMS administrator specified when using operating system authentication. ")) else: if (schema_type == "DBO_SCHEMA"): print("\nWarning: %s %s, %s\n" % ("Only SDE schema is supported on", database_type, "switching to SDE schema. " )) if( gdb_admin.lower() == ""): print("\n%s: error: %s\n" % (sys.argv[0], "Geodatabase administrator must be specified.")) sys.exit(3) if( gdb_admin.lower() != "sde"): if (database_type == "ORACLE"): print("\nGeodatabase admin user is not SDE, creating user schema geodatabase on Oracle. \n") else: print("\n%s: error: %s for %s.\n" % (sys.argv[0], "Geodatabase administrator must be SDE", database_type)) sys.exit(3) if( dbms_admin == ""): print("\n%s: error: %s\n" % (sys.argv[0], "DBMS administrator must be specified!")) sys.exit(3) if (account_authentication == "OPERATING_SYSTEM_AUTH"): print("Warning: %s %s, %s\n" % ("Only database authentication is supported on", database_type, "switching to database authentication. " )) # Get the current product license product_license=arcpy.ProductInfo() # Checks required license level if product_license.upper() == "ARCVIEW" or product_license.upper() == 'ENGINE': print("\n" + product_license + " license found!" + " Creating an enterprise geodatabase requires an ArcGIS Desktop Standard or Advanced, ArcGIS Engine with the Geodatabase Update extension, or ArcGIS Server license.") sys.exit("Re-authorize ArcGIS before creating enterprise geodatabase.") else: print("\n" + product_license + " license available! Continuing to create. ") arcpy.AddMessage("+++++++++") try: print("Creating enterprise geodatabase. \n") arcpy.CreateEnterpriseGeodatabase_management(database_platform=database_type,instance_name=instance, database_name=database, account_authentication=account_authentication, database_admin=dbms_admin, database_admin_password=dbms_admin_pwd, sde_schema=schema_type, gdb_admin_name=gdb_admin, gdb_admin_password=gdb_admin_pwd, tablespace_name=tablespace, authorization_file=license) for i in range(arcpy.GetMessageCount()): arcpy.AddReturnMessage(i) arcpy.AddMessage("+++++++++\n") except: for i in range(arcpy.GetMessageCount()): arcpy.AddReturnMessage(i) #Check if no value entered for option except SystemExit as e: if e.code == 2: parser.usage = "" print("\n") parser.print_help() parser.exit(2)
В следующем примере файл create_gdb.py запускается для создания базы данных entgdb на экземпляре SQL Server porthos\gisprod. Инструмент запускается от имена пользователя sa с аутентификацией средствами базы данных, он создает базу геоданных в схеме пользователя sde. Для авторизации базы геоданных в местоположении для ArcGIS Server по умолчанию задаётся файл ключей.
create_gdb.py --DBMS SQL_SERVER -i porthos\gisprod -D entgdb --auth DATABASE_AUTH -U sa -P N0pe3king! --schema SDE_SCHEMA -u sde -p Tgdbst@rtsh3r3 -l '\\Program Files\ESRI\License\sysgen\keycodes'
В этом примере для создания базы геоданных в схеме dbo тот же скрипт запускается при входе на клиентский компьютер с учетной записью, которая является участником фиксированной серверной роли sysadmin:
create_gdb.py --DBMS SQL_SERVER -i porthos\gisprod -D entgdb --auth OPERATING_SYSTEM_AUTH --schema DBO_SCHEMA -l '\\Program Files\ESRI\License\sysgen\keycodes'
Подсказка:
Type -h or —help at the command prompt to get syntax help.
Теперь у вас есть база геоданных в SQL Server .
Сообщения, относящиеся к созданию базы геоданных, записываются в файл sde_setup.log , который создается в каталоге, указанном для переменной %TEMP%, на том компьютере, где запущен скрипт. При наличии проблем с созданием базы геоданных изучите этот файл журнала для их устранения.
Администратор SQL Server создает базу данных; администратор базы геоданных создает базу геоданных
Если пользователь, создающий базу геоданных, не имеет доступа к паролю администратора базы данных, администратор базы данных может сам создать базу данных и создать учетную запись администратора базы геоданных, пользователя и схему. Если база геоданных должна храниться в схеме sde, администратор базы данных создает учетную запись, пользователя и схему sde. Если вы хотите, чтобы база геоданных хранилась в схеме dbo, администратор базы данных создает учетную запись и пользователя, и назначает пользователя владельцем базы данных. Подробнее о способах хранения баз геоданных см. в разделе Сравнение владельцев баз геоданных на SQL Server .
Администратор базы геоданных может подключиться в базе данных как администратор базы геоданных и создать базу геоданных с помощью инструмента геообработки Включить многопользовательскую базу геоданных или скрипта Python.
Инструмент Включить многопользовательскую базу геоданных использует файл подключения к базе данных и создает системные таблицы базы геоданных, представления, функции и процедуры.
Установка и конфигурация SQL Server
- Установить SQL Server и настроить экземпляр. Настройка экземпляра зависит от специфических требований организации. Изучите Системные требования ArcGIS, прежде чем создать базу геоданных, чтобы быть уверенным, что комбинация СУБД, ArcGIS и аппаратного обеспечения, которую вы хотите использовать, поддерживается. После установки SQL Server , убедитесь, что экземпляр SQL Server настроен на прием удаленных подключений; по умолчанию удаленные подключения не разрешены. Обратитесь к документации Microsoft для получения информации об установке и настройке SQL Server .
- Создать базу данных
- Установите для опций базы данных SQL Server READ_COMMITTED_SNAPSHOT и ALLOW_SNAPSHOT_ISOLATION значения ON. Если администратор SQL Server не включит эти опции, но выдаст администратору базы геоданных права ALTER в базе данных, инструмент Включить многопользовательскую базу геоданных изменит эти настройки базы данных при запуске. Если администратор SQL Server не включит эти опции, а администратор базы геоданных не будет иметь права на их изменение, база геоданных не будет создана.
- Добавить или создать учетную запись, сопоставленную с пользователем sde базы данных или с пользователем, который является владельцем базы данных.
- При использовании базы геоданных в схеме sde, создайте в базе данных схему sde. Установите ее как схему пользователя sde по умолчанию.
- При использовании sde-схемы базы геоданных, пользователь sde должен иметь, как минимум, следующие права: CREATE FUNCTION, CREATE PROCEDURE, CREATE TABLE и CREATE VIEW. Более подробно о других правах см. в разделе Права доступа для баз геоданных на SQL Server .
Установка клиентов
Администратор базы геоданных модет установить ArcGIS Desktop ( Desktop Standard или Desktop Advanced ), ArcGIS Engine с дополнительным модулем Geodatabase, или ArcGIS Server , чтобы создать базу геоданных, запустив скрипт Python. Если вы хотите запустить инструмент геообработки Включить многопользовательскую базу геоданных вместо скрипта, установите ArcGIS Desktop .
Примечание:
Вам потребуется файл ключей ArcGIS Server (enterprise) для авторизации вашей базы геоданных в следующем разделе. Даже если вы не запустите скрипт Python с компьютера ArcGIS Server для создания базы геоданных, вы должны установить и авторизовать ArcGIS Server для того, чтобы получить файл ключей. Может потребоваться скопировать файл с ключами с ArcGIS Server в директорию, к которой есть доступ у инструмента геообработки Включить многопользовательскую базу геоданных .
В большинстве случаев клиентские приложения ArcGIS устанавливаются не тот компьютер, где стоит SQL Server . Поэтому, для подключения к базе данных на клиентском компьютере ArcGIS должен быть установлен поддерживающийся клиент SQL Server . См. Системные требования ArcGIS к SQL Server для определения версии клиента SQL Server , позволяющей подключиться к используемой версии SQL Server .
Чтобы подключиться к SQL Server на компьютере Microsoft Windows , можно загрузить клиент SQL Server с My Esri или из Microsoft Download Center. Чтобы подключиться к SQL Server на компьютере с Linux , можно загрузить клиент SQL Server из Microsoft Download Center. Следуйте инструкциям Microsoft по установке клиента SQL Server на вашем компьютере.
- Установите клиент ArcGIS, который собираетесь использовать для создания базы геоданных. Следуйте инструкциям руководств по установке программного обеспечения.
- Установите клиент SQL Server на клиентском компьютере ArcGIS. Если вы устанавливаете клиент SQL Server на 64-разрядную операционную систему, используйте exe-файл 64-разрядного клиента SQL Server . Этот файл выполнит установку и 32-разрядного, и 64-разрядного клиентов, что позволит им работать как с 32-разрядными приложениями, такими как ArcMap , так и с 64-разрядными приложениями ArcGIS, такими как ArcGIS Server или ArcGIS Pro . Если вы запускаете 32-разрядный клиент SQL Server на 64-разрядной операционной системе, произойдет сбой.
Клиент ArcGIS теперь готов подключиться к базе данных и создать базу геоданных. Для этого используйте один из способов, описанных в следующем разделе.
Создание базы геоданных
Администратор базы геоданных может запустить инструмент Включить многопользовательскую базу геоданных из ArcGIS Desktop (Standard или Advanced) или запустить скрипт Python из ArcGIS Desktop (Standard или Advanced), ArcGIS Server или ArcGIS Engine с дополнительным модулем Geodatabase для создания базы геоданных в имеющейся базе данных.
Запуск инструмента Включить многопользовательскую базу геоданных
Можно запустить инструмент Включить многопользовательскую базу геоданных из ArcGIS Desktop , чтобы создать базу геоданных в имеющейся базе данных SQL Server .
Следуйте приведенным шагам по созданию базы геоданных с помощью инструмента Включить многопользовательскую базу геоданных в ArcMap :
- Запустите ArcMap или ArcCatalog .
- Подключитесь к базе данных SQL Server из дерева Каталога в качестве администратора базы геоданных. Убедитесь в том, что в диалоговом окне Подключение базы данных сохранен пароль пользователя.
- Щелкните правой кнопкой мыши подключение к базе данных и выберите Включить базу геоданных .
Откроется инструмент Включить многопользовательскую базу геоданных , в поле Входное подключение к базе данных будет указано имя и расположение файла подключения.
В базе данных создается база геоданных.
Сообщения, относящиеся к созданию базы геоданных, записываются в файл sde_setup.log , который создается в каталоге, указанном для переменной %TEMP%, на том компьютере, где запущен инструмент. При наличии проблем с созданием базы геоданных изучите этот файл журнала для их устранения.
Запуск скрипта Python
Если вы хотите создать базу геоданных, запустив скрипт из ArcGIS Server , ArcGIS Desktop (Standard или Advanced) или ArcGIS Engine с дополнительным модулем Geodatabase на компьютере с Windows , вы можете использовать показанный здесь скрипт.
Выполните следующие шаги, чтобы запустить скрипт Python для создания базы геоданных в существующей базе данных SQL Server :
-
Создайте текстовый файл на клиентском компьютере ArcGIS и скопируйте следующий скрипт в файл.
""" Name: enable_enterprise_gdb.py Description: Provide connection information to an enterprise database and enable enterprise geodatabase. Type enable_enterprise_gdb.py -h or enable_enterprise_gdb.py --help for usage """ # Import system modules import arcpy, os, optparse, sys # Define usage and version parser = optparse.OptionParser(usage = "usage: %prog [Options]", version="%prog 1.0 for " + arcpy.GetInstallInfo()['Version'] ) #Define help and options parser.add_option ("--DBMS", dest="Database_type", type="choice", choices=['SQL_SERVER', 'ORACLE', 'POSTGRESQL', 'DB2','INFORMIX','DB2ZOS', ''], default="", help="Type of enterprise DBMS: SQL_SERVER, ORACLE, POSTGRESQL, DB2, INFORMIX, or DB2ZOS.") parser.add_option ("-i", dest="Instance", type="string", default="", help="DBMS instance name") parser.add_option ("--auth", dest="account_authentication", type ="choice", choices=['DATABASE_AUTH', 'OPERATING_SYSTEM_AUTH'], default='DATABASE_AUTH', help="Authentication type options (case-sensitive): DATABASE_AUTH, OPERATING_SYSTEM_AUTH. Default=DATABASE_AUTH") parser.add_option ("-u", dest="User", type="string", default="", help="Geodatabase administrator user name") parser.add_option ("-p", dest="Password", type="string", default="", help="Geodatabase administrator password") parser.add_option ("-D", dest="Database", type="string", default="none", help="Database name: Not required for Oracle") parser.add_option ("-l", dest="Authorization_file", type="string", default="", help="Full path and name of authorization file") # Check if value entered for option try: (options, args) = parser.parse_args() #Check if no system arguments (options) entered if len(sys.argv) == 1: print "%s: error: %s\n" % (sys.argv[0], "No command options given") parser.print_help() sys.exit(3) #Usage parameters for spatial database connection database_type = options.Database_type.upper() instance = options.Instance account_authentication = options.account_authentication.upper() username = options.User.lower() password = options.Password database = options.Database.lower() license = options.Authorization_file if( database_type ==""): print " \n%s: error: \n%s\n" % (sys.argv[0], "DBMS type (--DBMS) must be specified.") parser.print_help() sys.exit(3) if (license == ""): print " \n%s: error: \n%s\n" % (sys.argv[0], "Authorization file (-l) must be specified.") parser.print_help() sys.exit(3) # Get the current product license product_license=arcpy.ProductInfo() if (license == ""): print " \n%s: error: %s\n" % (sys.argv[0], "Authorization file (-l) must be specified.") parser.print_help() sys.exit(3) # Checks required license level if product_license.upper() == "ARCVIEW" or product_license.upper() == 'ENGINE': print "\n" + product_license + " license found!" + " Enabling enterprise geodatabase functionality requires an ArcGIS Desktop Standard or Advanced, ArcGIS Engine with the Geodatabase Update extension, or ArcGIS Server license." sys.exit("Re-authorize ArcGIS before enabling an enterprise geodatabase.") else: print "\n" + product_license + " license available! Continuing to enable. " arcpy.AddMessage("+++++++++") # Local variables instance_temp = instance.replace("\\","_") instance_temp = instance_temp.replace("/","_") instance_temp = instance_temp.replace(":","_") Conn_File_NameT = instance_temp + "_" + database + "_" + username if os.environ.get("TEMP") == None: temp = "c:\\temp" else: temp = os.environ.get("TEMP") if os.environ.get("TMP") == None: temp = "/usr/tmp" else: temp = os.environ.get("TMP") Connection_File_Name = Conn_File_NameT + ".sde" Connection_File_Name_full_path = temp + os.sep + Conn_File_NameT + ".sde" # Check for the .sde file and delete it if present arcpy.env.overwriteOutput=True if os.path.exists(Connection_File_Name_full_path): os.remove(Connection_File_Name_full_path) print "\nCreating Database Connection File. \n" # Process: Create Database Connection File. # Usage: out_file_location, out_file_name, DBMS_TYPE, instnace, database, account_authentication, username, password, save_username_password(must be true) arcpy.CreateDatabaseConnection_management(out_folder_path=temp, out_name=Connection_File_Name, database_platform=database_type, instance=instance, database=database, account_authentication=account_authentication, username=username, password=password, save_user_pass="TRUE") for i in range(arcpy.GetMessageCount()): if "000565" in arcpy.GetMessage(i): #Check if database connection was successful arcpy.AddReturnMessage(i) arcpy.AddMessage("\n+++++++++") arcpy.AddMessage("Exiting!!") arcpy.AddMessage("+++++++++\n") sys.exit(3) else: arcpy.AddReturnMessage(i) arcpy.AddMessage("+++++++++\n") # Process: Enable geodatabase. try: print "Enabling Enterprise Geodatabase. \n" arcpy.EnableEnterpriseGeodatabase_management(input_database=Connection_File_Name_full_path, authorization_file=license) for i in range(arcpy.GetMessageCount()): arcpy.AddReturnMessage(i) arcpy.AddMessage("+++++++++\n") except: for i in range(arcpy.GetMessageCount()): arcpy.AddReturnMessage(i) if os.path.exists(Connection_File_Name_full_path): os.remove(Connection_File_Name_full_path) #Check if no value entered for option except SystemExit as e: if e.code == 2: parser.usage = "" print "\n" parser.print_help() parser.exit(2)
В следующем примере файл enable_gdb.py запускается для базы данных spdata на экземпляре ssprod. Подключение выполняется для учётной записи sde с паролем Tgdbst@rtsh3r3. Для авторизации базы геоданных в местоположении ArcGIS Server по умолчанию задаётся файл ключей.
enable_gdb.py --DBMS SQL_SERVER -i ssprod --auth DATABASE_AUTH -u sde -p Tgdbst@rtsh3r3 -D spdata -l '\\Program Files\ESRI\License\sysgen\keycodes'
Подсказка:
Type -h or —help at the command prompt to get syntax help.
Теперь у вас есть база геоданных в базе данных SQL Server .
В директории, указанной переменной %TEMP%, на компьютере, на котором выполняется скрипт, будет создан файл журнала создания базы геоданных ( GDBCreateGeodatabase.log ).
MS SQL Server – создание базы данных
База данных – это набор объектов, таких как таблица, представление, хранимая процедура, функция, триггер и т. Д.
В MS SQL Server доступны два типа баз данных.
- Системные базы данных
- Пользовательские базы данных
Системные базы данных
Системные базы данных создаются автоматически при установке MS SQL Server. Ниже приведен список системных баз данных –
- Мастер
- модель
- MSDB
- Tempdb
- Ресурс (введен в версии 2005 года)
- Распространение (это только для функции репликации)
Пользовательские базы данных
Пользовательские базы данных создаются пользователями (администраторами, разработчиками и тестировщиками, которые имеют доступ к созданию баз данных).
Следующие методы используются для создания пользовательской базы данных.
Способ 1. Использование сценария T-SQL или восстановление базы данных
Ниже приведен основной синтаксис для создания базы данных в MS SQL Server.
Create database
Restore Database from disk = ‘
пример
Чтобы создать базу данных с именем «Testdb», выполните следующий запрос.
Create database Testdb
Restore database Testdb from disk = 'D:\Backup\Testdb_full_backup.bak'
Примечание. D: \ backup – это расположение файла резервной копии, а Testdb_full_backup.bak – имя файла резервной копии.
Способ 2 – Использование SQL Server Management Studio
Подключитесь к экземпляру SQL Server и щелкните правой кнопкой мыши папку базы данных. Нажмите на новую базу данных, и появится следующий экран.
Введите поле имени базы данных с именем вашей базы данных (например: для создания базы данных с именем ‘Testdb’) и нажмите OK. База данных testdb будет создана, как показано на следующем снимке.
SQL — Урок 1. Создание базы данных и таблиц
Итак, вы установили MySQL, и мы начинаем осваивать язык SQL. В уроке 3 по основам баз данных, мы создали концептуальную модель маленькой БД для форума. Пришло время реализовать ее в СУБД MySQL.
Для этого прежде всего надо запустить сервер MySQL. Идем в системное меню Пуск — Программы — MySQL — MySQL Server 5.1 — MySQL Command Line Client. Откроется окно, предлагающее ввести пароль.
Нажимаем Enter на клавиатуре, если вы не указывали пароль при настройке сервера или указываем пароль, если вы его задавали. Ждем приглашения mysql>.
Нам надо создать базу данных, которую мы назовем forum. Для этого в SQL существует оператор create database. Создание базы данных имеет следующий синтаксис:
create database имя_базы_данных;
Максимальная длина имени БД составляет 64 знака и может включать буквы, цифры, символ «_» и символ «$». Имя может начинаться с цифры, но не должно полностью состоять из цифр. Любой запрос к БД заканчивается точкой с запятой (этот символ называется разделителем — delimiter). Получив запрос, сервер выполняет его и в случае успеха выдает сообщение «Query OK . «
Итак, создадим БД forum:
Нажимаем Enter и видим ответ «Query OK . «, означающий, что БД была создана:
Вот так все просто. Теперь в этой базе данных нам надо создать 3 таблицы: темы, пользователи и сообщения. Но перед тем, как это делать, нам надо указать серверу в какую именно БД мы создаем таблицы, т.е. надо выбрать БД для работы. Для этого используется оператор use. Синтаксис выбора БД для работы следующий:
use имя_базы_данных;
Итак, выберем для работы нашу БД forum:
Нажимаем Enter и видим ответ «Database changed» — база данных выбрана.
Выбирать БД необходимо в каждом сеансе работы с MySQL.
Для создания таблиц в SQL существует оператор create table. Создание базы данных имеет следующий синтаксис:
create table имя_таблицы (имя_первого_столбца тип, имя_второго_столбца тип, . имя_последнего_столбца тип );
Требования к именам таблиц и столбцов такие же, как и для имен БД. К каждому столбцу привязан определенный тип данных, который ограничивает характер информации, которую можно хранить в столбце (например, предотвращает ввод букв в числовое поле). MySQL поддерживает несколько типов данных: числовые, строковые, календарные и специальный тип NULL, обозначающий отсутствие информации. Подробно о типах данных мы будем говорить в следующем уроке, а пока вернемся к нашим таблицам. В них у нас всего два типа данных — целочисленные значения (int) и строки (text). Итак, создадим первую таблицу — Темы:
Нажимаем Enter — таблица создана:
Итак, мы создали таблицу topics (темы) с тремя столбцами:
id_topic int — id темы (целочисленное значение),
topic_name text — имя темы (строка),
id_author int — id автора (целочисленное значение).
Аналогичным образом создадим оставшиеся две таблицы — users (пользователи) и posts (сообщения):
Итак, мы создали БД forum и в ней три таблицы. Сейчас мы об этом помним, но если наша БД будет очень большой, то удержать в голове названия всех таблиц и столбцов просто невозможно. Поэтому надо иметь возможность посмотреть, какие БД у нас существуют, какие таблицы в них присутствуют, и какие столбцы эти таблицы содержат. Для этого в SQL существует несколько операторов:
show databases — показать все имеющиеся БД,
show tables — показать список таблиц текущей БД (предварительно ее надо выбрать с помощью оператора use),
describe имя_таблицы — показать описание столбцов указанной таблицы.
Давайте попробуем. Смотрим все имеющиеся базы данных (у вас она пока одна — forum, у меня 30, и все они перечислены в столбик):
Теперь посмотрим список таблиц БД forum (для этого ее предварительно надо выбрать), не забываем после каждого запроса нажимать Enter:
В ответе видим названия наших трех таблиц. Теперь посмотрим описание столбцов, например, таблицы topics:
Первые два столбца нам знакомы — это имя и тип данных, значения остальных нам еще предстоит узнать. Но прежде мы все-таки узнаем какие типы данных бывают, какие и когда следует использовать.
А сегодня мы рассмотрим последний оператор — drop, он позволяет удалять таблицы и БД. Например, давайте удалим таблицу topics. Так как мы два шага назад выбирали БД forum для работы, то сейчас ее выбирать не надо, можно просто написать:
drop table имя_таблицы;
Теперь снова посмотрим список таблиц нашей БД:
Наша таблица действительно удалена. Теперь давайте удалим и саму БД forum (удаляйте, не жалейте, ее все равно придется переделывать). Для этого напишем:
drop database имя_базы данных;
И убедитесь в этом, сделав запрос на все имеющиеся БД:
У вас, наверно, нет ни одной БД, у меня их стало 29 вместо 30.
На сегодня все. Мы научились создавать базы данных и таблицы, удалять их и извлекать информацию об имеющихся базах данных, таблицах и их описаниях.

Онлайн-курс. Освойте востребованную профессию с зарплатой от 70 000 руб в месяц!
Теперь нажмите кнопку, что бы не забыть адрес и вернуться к нам снова.
admin@site-do.ru
site-do.ru © 2009-2019 Копировать материалы сайта запрещено!
За нарушение авторских прав предусмотрена уголовная ответственность!
Телефон редакции +7(499)346-89-56
127051, г.Москва, Цветной бульвар, д. 11, стр. 6, офис 405.
