|
Спеца по MS SQL Есть? Смена кодировки, щепетильный вопрос. | ☑ | ||
---|---|---|---|---|
0
Aleksey_a_z
20.01.14
✎
11:40
|
Когда то давным давно, один нехороший дядя при инсталиции MS SQL версии 9.00.3080.00 выбрал в качестве кодировки SQL_Latin1_General_CP1_CI_AS
а как известно по умолчанию для 1С кодировка Cyrillic_General_CI_AS теперь я страдаю от этого. При попытке например снять совместимость для конфигурации использую платформу 8.3 начинается ругать на эти долбанные кодировки. Вопрос уважаемым, как привести кодировку скуля по умолчанию к виду Cyrillic_General_CI_AS и не грозил ли это серьезными проблемами, если да то какими? |
|||
1
Lama12
20.01.14
✎
11:46
|
Могу предложить измышления.
Настройки по умолчанию можно поменять. Новые базы будут создаваться в новой кодировке. Как себя поведут старые - х.з. Но их можно выгрузить в Dt и загрузить снова. |
|||
2
Господин ПЖ
20.01.14
✎
11:46
|
хардкор предлагать?
выгрузить базу в dt, убить, создать заново с нужной кодировкой, загрузить? |
|||
3
Aleksey_a_z
20.01.14
✎
11:48
|
(1) все одинэсовские базы в кодировке Cyrillic_General_CI_AS
в кодировке SQL_Latin1_General_CP1_CI_AS только системные базы master, model и т.д. |
|||
4
Джинн
20.01.14
✎
11:50
|
(3) Смена по сути равнозначна переустановке сервера. Баз много подключено?
|
|||
5
Lama12
20.01.14
✎
11:50
|
(3) Ну еще проще. Поднимаешь второй экземпляр SQL сервера. Базы 1С - делаешь бэкапы.
Разворачиваешь бэкапы на новом сервере БД. Правда придется переписать их все в сервере приложений (пути подключения). Профит. |
|||
6
Мыш
20.01.14
✎
11:51
|
||||
7
Aleksey_a_z
20.01.14
✎
11:53
|
Короче видать недопонимание.
1. Базы 1С все имеют "правильную" кодировку Cyrillic_General_CI_AS 2. "Неправильную" кодировку SQL_Latin1_General_CP1_CI_AS дядя установил по умолчанию для SQL сервера в лохматые годы когда там висели базы 7.7, видимо для них и была необходима кодировка SQL_Latin1_General_CP1_CI_AS 3. Сейчас кодировку SQL_Latin1_General_CP1_CI_AS имеют системные базы и она установлена в параметрах скуля как по умолчанию. 4. При попытке снять совместимость в 1с 8.3 базы которая имеет кодировку Cyrillic_General_CI_AS 1С начала ругаться на кодировку SQL_Latin1_General_CP1_CI_AS что мол ей это мол очень мешает что у тебя там по умолчанию стоит эта кодировка и снять совместимость извини немогу |
|||
8
Lama12
20.01.14
✎
11:54
|
(7) Чем не устраивает (5)?
|
|||
9
МихаилМ
20.01.14
✎
11:55
|
||||
10
Джинн
20.01.14
✎
11:55
|
(7) Еще раз - это REBUILDDATABASE. Равнозначно переустановке.
|
|||
11
Мыш
20.01.14
✎
11:58
|
(10) Человек всё ещё надеется, что сможет избежать геморроя. Мечты )
|
|||
12
Chai Nic
20.01.14
✎
11:58
|
(7)"кодировку SQL_Latin1_General_CP1_CI_AS дядя установил по умолчанию для SQL сервера в лохматые годы когда там висели базы 7.7, видимо для них и была необходима кодировка SQL_Latin1_General_CP1_CI_AS "
Нет, она не необходима. Скорее всего, семерочная база была перенесена с sql7 путем sql-бэкапа или прямым подключением mdf, а там как раз эта кодировка использовалась. Соответственно, при создании экземпляра сервера для минимизации проблем была создана тот же порядок сортировки по умолчанию. Проблему решить можно выгрузкой и семерки и восьмерки, переустановкой сервера sql с правильным порядком сортировки и загрузкой всех баз. |
|||
13
Господин ПЖ
20.01.14
✎
12:00
|
надеюсь автор знает пароли от учеток от которых скуль вертится
|
|||
14
Господин ПЖ
20.01.14
✎
12:00
|
и юзеров значимых с sid не забудь перенести...
|
|||
15
Джинн
20.01.14
✎
12:02
|
(11) Да не сложно это детач-ребилд-аттач. Только если баз много, то геморрой.
|
|||
16
МихаилМ
20.01.14
✎
12:03
|
(12)
для мс скл сервер 2005 (из (0)) переустановка сервера для смены кодировки не требуется. |
|||
17
Джинн
20.01.14
✎
12:05
|
(16) Ребилд мастер-базы равнозначен переустановке по последствиям :)
|
|||
18
fisher
20.01.14
✎
12:22
|
(15) Коллэйшн в строковых колонках таблиц базы от этого не поменяется.
Или я чего-то не рублю, но реальных путей кроме перегрузки из dt. Остальные еще хардкорней. |
|||
19
Aleksey_a_z
20.01.14
✎
12:41
|
(5) как поднять второй экземпляр SQL ?
|
|||
20
Господин ПЖ
20.01.14
✎
12:42
|
так же как обычно... просто дать ему имя отличное от того что предлагает сетуп по дефалту, совпадающее с именем компа
|
|||
21
Aleksey_a_z
20.01.14
✎
12:45
|
Вопрос другого порядка, сейчас стоит версия 9.00.3080.00
я хз, 2005 или 2008 или еще бог знает какая это версия. Диск шел с коробкой 1С, оттуда в лохматые годы и ставилось это все. Вопрос, я могу поставить версию посвежей, скажем SQL 2012 не будет ли разного рода геморроя? Просто затевая такую эпопею хотелось бы получить хоть чуточку приятного а не тупо переустановить одно барахло на это же? Ну и приключения там всякие то же ведь здорово) |
|||
22
acsent
20.01.14
✎
12:48
|
поменять кодировку нужно и обработать все таблицы
|
|||
23
Господин ПЖ
20.01.14
✎
12:48
|
если там 7.7 есть - хз вероятно можно получить граблями по спине...
|
|||
24
fisher
20.01.14
✎
12:51
|
А, блин. Я невнимательно читал. У ТС базы уже в нужном коллэйшне. Нужно только коллэйшн сервера сменить.
Тогда Джинн все правильно написал. Детач баз, ребилд системных таблиц и аттач обратно. |
|||
25
Gepard
20.01.14
✎
13:06
|
(5) а пр восстановлении разве кодировка базы не останется прежней?))
имхо - самое простое dt |
|||
26
Gepard
20.01.14
✎
13:08
|
(25) + dt - в новую базу с правильной кодировкой.
|
|||
27
Aleksey_a_z
20.01.14
✎
13:54
|
(23) 7.7 там давно нету, а вот эхо осталось
|
|||
28
Aleksey_a_z
20.01.14
✎
13:56
|
(24) у меня есть мысля вообще переустановить его, обновив посвежее версией. Кто подскажет как этот процесс осуществить. Остановить все службы и деинсталировать полностью сервак предварительно отсоединив базы, а потом установив прицепить их, ох что то я очкую
|
|||
29
Lama12
20.01.14
✎
13:57
|
(19) На разные порты разнеси.
|
|||
30
Aleksey_a_z
20.01.14
✎
14:03
|
(10) окей, ребулд так ребулд, теперь объясни что это? Это полностью снести все и поставить по новой или REBUILDDATABASE это команда T-SQL которая сама за тебя все сделать стоит только приказать?
|
|||
31
Aleksey_a_z
20.01.14
✎
14:03
|
(29) как бы меня потом не разнесли на разные порты))))
|
|||
32
Господин ПЖ
20.01.14
✎
14:12
|
погляди сначала от кого службы sql вертятся и юзеры 1с в базы лазят... а то получишь потом по спине лопатой если паролей не знаешь... если это не sa - собрать от них sid и создавать с ними, чтобы не сношаться с ролями когда копии восстановишь.
|
|||
33
Aleksey_a_z
20.01.14
✎
14:17
|
(32) sa пароль знаю
|
|||
34
Господин ПЖ
20.01.14
✎
14:18
|
(33) я конечно рад, но не факт что все от него происходит
|
|||
35
wPa
20.01.14
✎
14:22
|
(7) дело не столько в сервере и базах (там коллейшн поменять не сложно) - сколько в таблицах и индексах. Особенно в системных базах. у них же тоже есть коллэйшн наследуемое от базы - от сервера. вообщем до конца не победил (0) и сделал (4)
|
|||
36
Aleksey_a_z
20.01.14
✎
14:26
|
USE [master]
GO ALTER DATABASE [tempdb] COLLATE Cyrillic_General_CI_AS GO Сообщение 3708, уровень 16, состояние 5, строка 1 Невозможно изменить база данных "tempdb", так как она является системной база данных. |
|||
37
fisher
20.01.14
✎
15:16
|
(36) На 2000 сиквеле пересоздание системных таблиц под новым коллэйшном сервера делалось так (см. ниже). Ессно это все снесет нафиг, как после переустановки сервака. Т.е. нужно иметь все свежие бэкапы, всем базам сделать детач. Если все пройдет успешно, просто потом их приаттачить.
To rebuild the master database Shutdown Microsoft SQL Server 2000, and then run Rebuildm.exe. This is located in the Program Files\Microsoft SQL Server\80\Tools\Binn directory. In the Rebuild Master dialog box, click Browse. In the Browse for Folder dialog box, select the \Data folder on the SQL Server 2000 compact disc or in the shared network directory from which SQL Server 2000 was installed, and then click OK. Click Settings. In the Collation Settings dialog box, verify or change settings used for the master database and all other databases. Initially, the default collation settings are shown, but these may not match the collation selected during setup. You can select the same settings used during setup or select new collation settings. When done, click OK. In the Rebuild Master dialog box, click Rebuild to start the process. The Rebuild Master utility reinstalls the master database. Note To continue, you may need to stop a server that is running. |
|||
38
fisher
20.01.14
✎
15:20
|
(36) И на будущее. В MSSQL (не помню с какой версии) коллэйшн базы - это всего лишь дефолтовый коллэйшн для НОВЫХ таблиц этой базы. Необходимо еще и ALTER TABLE делать для каждой таблицы со строковыми колонками.
|
|||
39
Джинн
20.01.14
✎
15:22
|
(36) Ребилд - это утилитка на установочном диске
|
|||
40
Chai Nic
20.01.14
✎
15:28
|
(38) А для tempdb? Помнится, 1с очень не любит, когда для tempdb и для баз коллэйшен различный.
|
|||
41
fisher
20.01.14
✎
15:29
|
(40) Про системные таблицы я уже написал. Они утилитой ребилдятся. (38) было про пользовательские таблицы.
|
|||
42
wPa
20.01.14
✎
15:29
|
(38) а для полей с индексами может быть отказано в доступе. Так что кроме изменения коллейшн таблиц и полей с индексами придется пересобирать ограничения полей - primary key, foreign key, unique, check
|
|||
43
Джинн
20.01.14
✎
15:31
|
Да прекращайте тут мерятся своими 22 с., ой, эрудицией. Все гораздо проще - пользовательские базы уже в нужном collation. Только системные нужно поменять.
|
|||
44
wPa
20.01.14
✎
15:41
|
(39)
В SQL Server 2000 можно было изменить сопоставление на уровне сервера без переустановки сервера. Для этого надо запустить утилиту Rebuild Master (RebuildM.exe), которая расположена в папке Program Files\Microsoft SQL Server\80\Tools\BINN. В SQL Server 2005 утилита RebuildM.exe не поддерживается. Поэтому для изменения сопоставления вам понадобится перестроить системную базу данных master с помощью параметра REBUILDDATABASE в Setup.exe. Для этого сделайте резервную копию БД, отсоедините все пользовательские БД и выполните: start /wait setup.exe /qb INSTANCENAME=MSSQLSERVER REINSTALL=SQL_Engine REBUILDDATABASE=1 SAPWD=test SQLCOLLATION=Cyrillic_General_CI_AS INSTANCENAME — имя экземпляра SQL SAPWD - пароль пользователя sa SQLCOLLATION — новое сопоставление |
|||
45
wPa
20.01.14
✎
15:42
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |