Instalarea și configurarea postgresql pentru 1c linux. Instalați PostgreSQL. Componentele necesare pentru instalare

Întrebarea care DBMS - Postgresql sau MS SQL pentru 1C este cea mai optimă - a făcut obiectul multor articole. În acest articol, ne vom uita la pașii de optimizare pentru ambele. SGBD-ul fiecărui furnizor are atât propriile recomandări de configurare, cât și recomandări de la 1C. Trebuie remarcat faptul că, în funcție de echipament, configurația serverului și numărul de utilizatori care setează diferite încărcări, detaliile procesului de optimizare a SGBD pentru 1C și de implementare a recomandărilor se pot modifica.

Configurarea PostgreSQL pentru 1C

Experiența în operarea bazelor de date 1C pe PostgreSQL a arătat că cele mai înalte performanțe și performanțe optime ale 1C și PostgreSQL au fost obținute pe Linux, așa că este recomandabil să le folosiți. Dar, indiferent de sistemul de operare, este important de reținut că setările implicite specificate la instalarea PostgreSQL sunt destinate doar pornirii serverului DBMS. Nu se poate vorbi de vreo exploatare industrială! Următorul pas după lansare va fi optimizarea PostgreSQL pentru 1C:

  • Pentru început, dezactivăm Economisirea energiei (în caz contrar, întârzierile în răspunsurile din baza de date pot crește în mod imprevizibil) și interzicem schimbarea memoriei partajate.
  • Configuram parametrii de baza ai serverului DBMS (recomandările de configurare sunt descrise suficient de detaliat, atât pe site-ul oficial al vânzătorului, cât și de către 1C, așa că ne vom concentra doar pe cele mai importante).
  • Recomandările standard ale companiei 1C sugerează dezactivarea mecanismelor HyperThreading. Dar testarea Postgres-pro pe servere cu SMT (simultaneous multi threading) activat a arătat rezultate diferite.
Setarea shared_buffers la RAM/4 este recomandarea implicită, dar exemplul Sql Server sugerează că cu cât îi este alocată mai multă memorie, cu atât performanța sa este mai bună (cu spălarea paginii dezactivată). Adică, cu cât mai multe pagini de date sunt localizate în RAM, cu atât mai puține accesări la disc. Apare întrebarea: de ce un cache atât de mic? Răspunsul este simplu: dacă shared_buffers este mare, atunci unele dintre paginile neutilizate sunt schimbate pe disc. Dar cum să urmăriți momentul în care resetarea se oprește și indicatorul parametrului este optim? Pentru a atinge și a atinge indicatorul shared_buffers optim, valoarea acestuia trebuie crescută în producție zilnic (dacă este posibil) cu o anumită creștere și urmăriți în ce moment paginile vor începe să fie scoase pe disc (swap-ul va crește).
  • În plus, „parametrul mare” este afectat negativ de lucrul cu multe pagini mici, care au în mod implicit o dimensiune de 8Kb. Lucrul cu ei crește costurile generale. Ce se poate face cu aceasta pentru a optimiza pentru 1C? PostgreSQL 9.4 a introdus parametrul huge_pages, care poate fi activat, dar numai pe Linux. În mod implicit, sunt incluse pagini uriașe cu o dimensiune implicită de 2048 kB. În plus, suportul pentru aceste pagini trebuie să fie activat în sistemul de operare. Astfel, prin optimizarea structurii de stocare, puteți obține un indicator shared_buffers mai mare.
  • work_mem = RAM/32..64 sau 32MB..128MB Setează cantitatea de memorie pentru fiecare sesiune care va fi utilizată pentru operațiuni interne de sortare, îmbinare etc. înainte de a utiliza fișierele temporare. Dacă acest volum este depășit, serverul va folosi fișiere temporare de pe disc, ceea ce poate reduce semnificativ viteza de procesare a cererilor. Acest parametru este folosit la executarea operatorilor: ORDER BY, DISTINCT, merge joins etc.
  • În plus, acest parametru poate fi calculat după cum urmează: (Shared memory shared_buffers - memorie pentru alte programe) / numărul de conexiuni active. Această valoare poate fi redusă prin monitorizarea numărului de fișiere temporare create. Astfel de statistici privind dimensiunea și numărul fișierelor temporare pot fi obținute din vizualizarea sistemului pg_stat_database.
  • effective_cache_size = RAM - shared_buffers Scopul principal al acestui parametru este de a spune optimizatorului de interogări ce metodă de preluare a datelor să aleagă: scanare completă sau scanare index. Cu cât valoarea parametrului este mai mare, cu atât este mai mare probabilitatea de a utiliza scanarea indexului. În acest caz, serverul nu ține cont de faptul că datele pot rămâne în memorie atunci când execută o solicitare, iar următoarea solicitare nu trebuie să le recupereze de pe disc.
  • Instalarea PostgreSQL

    Instalarea 1C pe PostgreSQL sub Windows este un proces destul de simplu. Când rulați pachetul de instalare, trebuie să specificați codificarea UTF-8. De fapt, aceasta este singura nuanță interesantă și nu este necesară nicio altă configurare a PostgreSQL pentru 1C 8.3 din Windows. Instalarea și configurarea PostgreSQL pentru 1C pe sistemul de operare Linux poate cauza o serie de dificultăți. Pentru a le depăși, de exemplu, să luăm în considerare rularea (folosind kituri de distribuție de la principalul furnizor rus PostgreSQL-Pro și compania 1C) PostgreSQL pe un server Ubuntu 16.04 x64

    Instalarea de kituri de distribuție 1C pentru DBMS PostgreSQL

    1.Descărcați poziția specificată a kitului de distribuție DBMS PostgreSQL:

    2. Încărcați PostgreSQL pe server;

    3. Puteți despacheta programul de instalare PostgreSQL DBMS cu comanda:

    tar -xvf postgresql-9.4.2-1.1C_amd64_deb.tar.bz2

    4. Înainte de a instala kitul de distribuție PostgreSQL DBMS, să verificăm prezența localității necesare în sistem (în mod implicit ru_RU.UTF-8):


    5. Dacă sistemul cu care va funcționa PostgreSQL a fost instalat într-o altă limbă decât rusa, trebuie să creați noi locale:

    locale-gen ru_RU update-locale LANG=ru_RU.UTF8 dpkg-reconfigure locale

    6. Dacă localitatea necesară este încă disponibilă, instalați-o în mod implicit:

    locale –a nano /etc/default/locale Înlocuiți conținutul cu LANG=ru_RU.UTF-8

    7. După repornire, instalați pachetele necesare pentru versiunea noastră de PostgreSQL:

    apt-get install libxslt1.1 ssl-cert

    8.Versiunea pachetului PostgreSQL 9.4.2-1.1C este legată la versiunea pachetului libicu libicu48. Versiunea necesară nu se mai află în depozit, dar o puteți descărca;

    9.Descărcați și plasați în directorul în care sunt stocate fișierele descărcate pentru PostgreSQL;

    10. Mergând la directorul cu fișierele PostgreSQL, efectuăm instalarea tastând secvențial următoarele comenzi:

    CD<Путь к папке с файлами>dpkg -i libicu48_4.8.1.1-3ubuntu0.6_amd64.deb dpkg -i libpq5_9.4.2-1.1C_amd64.deb dpkg -i postgresql-client-common_154.1.1C_all.deb dpkg-com.mon.1_deb dpkg -i. -i postgresql-client-9.4_9.4.2-1.1C_amd64.deb dpkg -i postgresql-9.4_9.4.2-1.1C_amd64.deb dpkg -i postgresql-contrib-9.4_9.4.2-1.1C_amd64.

    11.Gata. Setul de distribuție PostgreSQL DBMS este instalat.

    Instalarea distribuțiilor PostgreSQL-Pro

    Pentru a instala serverul, trebuie să executați următoarele comenzi succesive:

    sudo sh -c "echo "deb http:// 1c.postgrespro.ru/deb/ $(lsb_release -cs) main" > /etc/apt/sources.list.d/postgrespro-1c.list" wget --quiet -O - ​​​​http:// 1c.postgrespro.ru/keys/GPG-KEY-POSTGRESPRO-1C-92 | sudo apt-key add - && sudo apt-get update sudo apt-get install postgresql-pro-1c-9.4

    Pentru a accesa serverul, editați parametrii din fișier pg_hba.conf

    CD<Путь до каталога pg_hba.conf>cp pg_hba.conf pg_hba.conf.old bash -c "echo "local all postgres trust" > pg_hba.conf" bash -c "echo "host all all all md5" >> pg_hba.conf"

    Fișierul în sine are următoarea structură:


    Dosarul este bine documentat, dar în limba engleză. Să ne uităm pe scurt la parametrii principali:

    • Local conexiune locală numai prin Unix
    • Gazdă Conexiune TCP/IP
    • Hostssl conexiune SSL criptată prin TCP/IP (serverul trebuie să fie construit cu suport SSL, trebuie setat și parametrul ssl)
    • Hostnossl conexiune necriptată prin TCP/IP
    • încredere admit fără autentificare
    • respinge refuza fără autentificare
    • parolă cerere de parolă text clar
    • md5 cerere de parolă în formă MD5
    • ldap verificarea numelui de utilizator și a parolei folosind serverul LDAP
    • rază Verificarea numelui de utilizator și a parolei utilizând serverul RADIUS
    • pam verificarea numelui de utilizator și a parolei utilizând serviciul de plugin

    Informații mai detaliate și detaliate pot fi găsite în documentația pentru produsul PostgreSQL.

    root@NODE2:/home/asd# service --status-all |grep postgres [ - ] postgresql root@NODE2:/home/asd# service postgresql start root@NODE2:/home/asd# service --status-all | grep postgres [ + ] postgresql

    După finalizarea instalării principale, trebuie să configurați fișierul de configurare a serverului postgresql.conf, în funcție de specificul configurației PostgreSQL, server 1C și server Ubuntu.

    Optimizarea 1C pentru MS SQL Server

    Instalarea celor mai recente actualizări pentru SQL Server.

    Sistemul de operare își rezervă spațiu și îl umple cu zerouri, ceea ce necesită mult timp în următoarele evenimente:

    • Crearea unei baze de date;
    • Adăugarea de fișiere de date, jurnal de tranzacții, la o bază de date existentă;
    • Creșterea dimensiunii unui fișier existent (inclusiv operațiuni Autogrow);
    • Restaurăm baze de date sau grupuri de fișiere.

    Această problemă este rezolvată prin adăugarea rolului (sub care rulează serverul) la elementul de politică locală de securitate „Efectuați sarcini de întreținere a volumului”.

    Dacă este posibil, este necesară distribuirea bazei de date TempDB (este folosită mai ales intens în modul de blocare gestionat RCSI) și a jurnalului de tranzacții pe diferite discuri.

    Pe serverul care rulează SQL Server, modul de economisire a energiei ar trebui să fie setat la „Performanță ridicată”.

    Folderul cu fișierele bazei de date nu trebuie comprimat.

    În fila „Memorie” pentru server, am setat nivelul minim la 50% din memoria totală. Calculăm maximul folosind una dintre formulele:

    • Memoria maximă = Volumul total - dimensiune în funcție de OS - dimensiune pentru 1C (Dacă există, după măsurarea anterioară a memoriei utilizate cu contoare) sau
    • Maximum Memory = Total Size – (1024* Total Size/16384).

    Limităm parametrul DOP „Gradul maxim de paralelism” și îl setăm la valoarea „1”.

    Actualizam statisticile conform programului. Începând cu SQL Server 2008, actualizarea statisticilor face ca interogările să fie recompilate și, prin urmare, șterge memoria cache procedurală, astfel încât nu este nevoie să efectuați o procedură separată pentru a șterge memoria cache procedurală.

    Reindexăm periodic tabelul și defragmentăm indecșii.

    Stabilim politica corecta de rezervare. Dacă nu trebuie să vă recuperați până la ultimul moment înainte de o prăbușire a sistemului și ultimele 5 minute sau mai mult nu sunt esențiale pentru afacerea dvs., atunci setați modelul de recuperare la „Simplu”. Acest lucru vă va accelera semnificativ viteza de înregistrare. Principalul lucru este că backup-ul diferențiat poate fi finalizat în timpul specificat.

    Obținem îmbunătățiri în lucrul cu TempDB în timpul I/O prin crearea de fișiere de date suplimentare. Dacă există mai puțin de 8 procesoare logice, se recomandă să creați un fișier de date pentru fiecare procesor logic. Dacă există mai mult de 8 procesoare logice, se recomandă să creați 8 fișiere de date și, crescând cu unu la un multiplu de 4, asigurați-vă că estimați încărcarea TempDB.

    SGBD-ul PostgreSQL este foarte popular în rândul utilizatorilor, iar motivul pentru aceasta este calitatea sa decentă, în timp ce este complet gratuit. Popularitatea ridicată a dus la faptul că sarcinile legate de accesul direct la o bază de date PostgreSQL din 1C sunt întâlnite destul de des. Vom vorbi mai jos despre cum să organizăm acest acces.

    Pregătirea

    La început, trebuie spus că toate testele au fost efectuate pe Windows 7 (64-bit) și Windows 10 (64-bit), iar conexiunile s-au făcut la serverul PostgreSQL (64-bit) 9.4.2-1.1C .

    Primul lucru de care avem nevoie este driverul psqlODBC instalat. Îl puteți instala fie folosind aplicația Stack Builder (care este instalată cu PostgreSQL):

    Sau vizitând pagina, care prezintă multe versiuni ale driverului nostru:


    Important! Trebuie să instalați psqlODBC (32 de biți).

    Cu driverul psqlODBC (64 de biți), nu am putut să mă conectez la baza de date în niciun fel, pe niciun sistem de operare. Este foarte probabil ca motivul pentru asta să fie mâinile mele strâmbe, dar eu scriu ce este acolo.

    Oricum, după instalarea versiunii corecte de driver, avem mai multe modalități de a obține datele.

    Conectarea unei surse de date externe

    Conectarea unei baze de date PostgreSQL ca sursă de date externă este simplă și intuitivă. Creați o nouă sursă de date externă și adăugați un nou tabel:


    Apoi specificăm șirul de conexiune cam așa:

    Driver=(PostgreSQL Unicode);Server= gazdă;Port= port;Baza de date= db_name;Uid= utilizator;Pwd= parolă;STMT=utf8


    Și, ca rezultat, obținem o listă de tabele:


    Remarc că atunci când am creat o sursă de date externă, nu am putut utiliza surse de date personalizate, care sunt descrise mai jos.

    Conectarea utilizând ADODB

    Conectarea la o bază de date PostgreSQL și rularea diferitelor interogări folosind biblioteca ADOdb arată cam așa:

    &OnClient Procedure QueryKPostgreSQL(Command) ADOConnection = New COMObject("ADODB.CONNECTION");

    ADOSconnection.Provider = "MSDASQL.1";

    ADOSconnection.ConnectionString = "Driver=(PostgreSQL Unicode);Server=localhost;Port=5432;Database=test;Uid=postgres;Pwd=123456;STMT=utf8";

    Încercarea ADOSconnection.Open();

    Excepție returnare;

    EndTempt; ADONRecordSet = New COMObject("ADODB.RecordSet");;

    ADOCommand = New COMObject("ADODB.Command");

    Încercați ADOCommand.ActiveConnection = ADOConnection;

    ADOCommand.CommandText = "SELECT * FROM ""tabel"";";

    ADONRecordSet = ADOCommand.Execute();

    Excepție returnare;

    EndTempt; EndProcedure

    &OnClient

    ADOCommand = New COMObject("ADODB.Command");

    Procedură QueryPostgreSQL (comandă)

    ADOConnection= New COMObject("ADODB.CONNECTION");

    Conexiune ADOS. Furnizor= "MSDASQL.1" ;

    ADOCommand.CommandText = "SELECT * FROM ""tabel"";";

    ADONRecordSet = ADOCommand.Execute();

    Excepție returnare;

    Conexiune ADOS. ConnectionString=

    În acest caz, este posibil să utilizați o sursă de date personalizată, care trebuie creată mai întâi. Acest lucru se poate face folosind aplicația Surse de date ODBC (32 de biți), care se află în Panoul de control (și în Windows 10 în folderul Instrumente administrative din Panoul de control). Este important să folosiți versiunea pe 32 de biți, deoarece fiecare versiune vede doar „propriile” drivere. Dacă, din anumite motive, această aplicație nu se află pe panoul de control, atunci o puteți lansa direct la \Windows\SysWOW64\odbcad32.exe.

    1 nov 2012 Avantajele utilizării software-ului liber sunt evidente. Din păcate, dezavantajele sunt și ele evidente - nu există suport oficial, documentația este adesea contradictorie, incompletă și împrăștiată în diferite surse. Acest articol vă va ajuta să înțelegeți procesul de instalare a PosgreSQL pentru 1C:Enterprise 8, evitând capcanele care nu sunt descrise în documentația oficială.

    Componentele necesare pentru instalare

    SGBD PostgreSQL este distribuit gratuit și este inclus în pachetul de livrare al serverului de aplicații 1C. Serverul de aplicații 1C:Enterprise 8 vine în două versiuni: pe 32 de biți și pe 64 de biți. Postgre se poate ocupa de ambele.

    Deci, avem truse de distribuție la îndemână:

    • Postgre: postgresql-9_1_2-1_1Cx64.zip, oferit cu amabilitate de 1C.
    • Distribuția serverului de aplicații 1C:Enterprise pentru Windows x64, versiunea 8.2.16.368.

    S-ar părea că nu ar putea fi mai simplu - pur și simplu rulați-l și instalați. Uşor! Dar instalarea în modul standard va da o mică limitare: cluster-ul va fi localizat în folderul „Program Files”. Nu va place tuturor. Să luăm în considerare două opțiuni de instalare, simplă și avansată.

    Articolul este împărțit în 5 secțiuni:

    1) Instalarea serverului 1C.

    2) Instalați PostgreSQL într-o formă standard, suficientă pentru a rula 1C fără setări suplimentare.

    3) Instalați PostgreSQL și selectați folderul de stocare în cluster.

    4) Crearea unei noi baze de informații 1C.

    5) Specificarea folderului pentru stocarea fișierelor bazei de date pe serverul DBMS.

    Înainte de instalare, asigurați-vă că citiți întregul articol!

    Instalarea serverului de aplicații 1C

    Lansăm setup.exe din folderul cu kitul de distribuție a serverului 1C.

    Dacă instalați serverul de aplicații nu ca serviciu, va trebui să îl porniți manual de fiecare dată. Această opțiune este rareori necesară. Îl instalăm ca serviciu și decidem sub ce utilizator va fi lansat. Din motive de securitate, este mai bine să creați un utilizator separat USR1CV82 decât să permiteți serviciului să ruleze cu drepturi depline.

    După instalarea serverului de aplicații, sistemul vă va solicita să instalați driverul cheii de protecție HASP. Suntem de acord:

    Asteptam un mesaj:

    Dacă mesajul este diferit, cel mai probabil există „cozi” rămase în sistem de la instalările anterioare ale driverelor HASP. Șterge-le pe toate și încearcă din nou.

    Gata, am instalat cu succes serverul de aplicații 1C:Enterprise 8.

    Instalarea PostgreSQL într-o formă standard, suficientă pentru a rula 1C fără setări suplimentare

    Rulați „postgresql-9.1.2-1.1C(x64).msi”

    Nu trebuie să modificați opțiunile de instalare, 1C va funcționa. Următorul.

    Postgre, ca și serverul 1C, poate crea el însuși un utilizator sub care veți rula serviciul. Vă rugăm să rețineți că, dacă specificați un cont cu drepturi de administrator, serviciul nu va funcționa corect. Asigurați-vă că ați creat un utilizator nou.

    Următoarea fereastră de instalare.

    Inițializam clusterul. Dacă serverul nostru de baze de date și serverul de aplicații 1C se află pe computere diferite, atunci bifați caseta „Suport conexiuni de la orice IP”, altfel nu o atingem. Asigurați-vă că specificați codificarea UTF8. Creați un superutilizator DBMS. Următorul...

    Pentru lucrarea inițială nu avem nevoie de nimic suplimentar, debifați caseta și finalizați instalarea.

    Rezultatul eforturilor noastre este PostgreSQL gata de utilizare. Dacă suntem mulțumiți că bazele de date vor fi localizate în Program Files\PostgreSQL\9.1.2-1.1C\data, terminăm aici, deschidem bazele de date și ne bucurăm de proces. Cu toate acestea, de cele mai multe ori, bazele de date „se află” pe matrice de discuri special concepute în acest scop, și nu pe discul de sistem. Pentru a configura locația datelor, vă rugăm să citiți următoarea secțiune înainte de instalare.

    Instalarea Postgre cu alegerea unei locații de stocare a clusterului

    Continuăm să instalăm Postgre și parcurgem toți pașii până când ni se solicită să inițializam clusterul:

    Debifați „Initialize database cluster” și faceți clic pe „Next”.

    Da, suntem siguri.

    Debifați „Run Stack Builder upon exit” și finalizați instalarea.

    1. Este necesar să acordăm drepturi depline folderului în care am instalat PostgreSQL, de obicei acesta este C:\Program Files\PostgreSQL

    2. Lansați cmd ca administrator. Dacă faceți acest lucru în win7, atunci rulați-l ca administrator.

    3. Creați un folder în care va fi stocat clusterul. De exemplu d:\postgredata.

    md d:\postgredata

    4. Inițializam clusterul manual, indicând calea unde va fi localizat.

    „C:\Program Files\PostgreSQL\9.1.2-1.1C\bin\initdb.exe” -D d:\postgredata --locale=Russian_Russia --encoding=UTF8 -U postgres

    5. Eliminați serviciul PostgreSQL care a fost instalat în timpul instalării.

    sc șterge pgsql-9.1.2-1.1C-x64

    Unde pgsql-9.1.2-1.1C-x64 este numele serviciului. Dacă nu cunoașteți exact numele, vă puteți uita la proprietățile serviciului „Server de bază de date PostgreSQL...” (Start - Panoul de control - Instrumente administrative - Servicii)

    6. Creați un nou serviciu care indică clusterul nostru

    Registrul „C:\Program Files\PostgreSQL\9.1.2-1.1C\bin\pg_ctl” -N pgsql -U postgresql -P parola -D d:/postgredata

    7. Acum să trecem la servicii. Start – Panou de control – Administrare – Servicii și porniți serviciul nostru.

    Crearea unei noi baze de date 1C pe un server cu PostgreSQL

    Există mai multe opțiuni pentru crearea unei baze de date. Puteți încerca să creați o bază de date prin pgAdmin3, consola de administrare a serverului 1C. Dar aici te vei confrunta cu o mulțime de întrebări de neînțeles și o grămadă de erori, răspunsurile la care le vei căuta mult timp. Lasă asta pe seama experților. Scopul nostru este să obținem o bază de lucru cu un efort minim. Să descriem cel mai simplu mod de a realiza acest lucru.

    Lansăm clientul 1C.

    Faceți clic pe „Adăugați...”.

    Venim cu un nume pentru baza de date, indică „Pe serverul 1C: Enterprise”, apoi.

    Cluster de servere 1C: Enterprise– localhost, dacă creăm o bază de date pe același computer pe care este instalat serverul 1C, sau numele serverului de aplicații 1C, dacă pe unul diferit.

    Numele bazei de informații din cluster- în viitor, acest nume va fi indicat la conectarea de la alte computere.

    tip DBMS– Selectați PostgreSQL.

    Server de baze de date- indicați numele serverului PostgreSQL. Dacă creăm o bază de date pe server, specificăm și localhost.

    Numele bazei de date– cu acest nume va fi creată o bază de date în PostgreSQL.

    Utilizator, parola– numele utilizatorului pe care l-am specificat ca superutilizator la instalarea PostgreSQL. Asigurați-vă că bifați caseta de selectare „Creați o bază de date dacă nu există”.

    Apare întrebarea - unde va fi stocată fizic baza de date? În folderul de bază al clusterului specificat. Ce se întâmplă dacă nu vrem să stea acolo unde sunt toate bazele? Încă nu putem face nimic în privința asta, doar vom crea o bază și vom merge mai departe. Următorul...

    Specificarea folderului de stocare a bazei de date

    Deci, am creat o bază. În cele mai multe cazuri, aici se termină instalarea. Cu toate acestea, dacă există multe baze de date și există mai multe matrice de discuri pentru diferite grupuri de baze de date, trebuie să indicați unde ar trebui să fie localizate fizic bazele de date. Pentru a face acest lucru, rulați pgAdmin3 din Start – Programe – PostgreSQL. Conectați-vă la serverul nostru.

    Când vă conectați pentru prima dată, Postgre va cere o parolă pentru utilizatorul postgres (pe care am creat-o în timpul instalării).

    Creăm un nou TableSpace, acesta va fi folderul în care vor fi stocate bazele noastre de date.

    A specificat locația de stocare pentru fișierele bazei de date. BINE.

    Acum deschidem proprietățile bazei de date create anterior, a cărei locație dorim să o schimbăm.

    Modificați proprietatea Tablespace. După ce faceți clic pe „OK”, fișierele bazei de date vor fi mutate automat. Gata! Sperăm că articolul ți-a fost de folos. Dacă da, lăsați comentarii și distribuiți link-uri către această pagină. Multumesc!

    Am actualizat unul dintre serverele Debian la 9.2 Stretch, de aceea este necesar să instalez serverul 1C și PostgreSQL, cele mai recente versiuni.

    Sarcină

    Există un server cu Debian 9.2 Stretch la bord, distribuții de server 1C:Enterprise 8.3.10.2580 și PosgreSQL 9.6. Este necesar să instalați și să configurați serverul 1C:Enterprise 8.3.10.2580 și PosgreSQL 9.6 pentru colaborare.

    Soluţie

    Primul lucru pe care îl facem este să setăm localizarea, serverul 1C funcționează cu localizarea ru_RU.UTF8 și PostgreSQL creează un cluster cu localizarea implicită.

    # locale-gen en_US # locale-gen ru_RU # update-locale LANG=ru_RU.UTF8 # dpkg-reconfigure locales

    Ultima comandă va deschide o interfață pseudo-grafică în care trebuie să verificați corectitudinea opțiunilor selectate și să răspundeți afirmativ, de fapt, puteți să vă descurcați cu ultima comandă și să configurați totul în ea; Pentru a aplica modificările, trebuie să reporniți sistemul.

    Instalarea serverului 1C:Enterprise

    Să preinstalăm pachetele necesare

    # apt-get install imagemagick ttf-mscorefonts-instal

    De regulă, nu există probleme cu instalarea serverului, doar instalăm pachetele secvenţial

    # dpkg -i 1c-enterprise83-common_8.3.10-2580_amd64.deb # dpkg -i 1c-enterprise83-server_8.3.10-2580_amd64.deb # dpkg -i 1c-enterprise83-wsam_83.10_d64.

    Dacă dintr-o dată pachetele nu sunt instalate, atunci utilizați comanda

    # apt-get -f install

    în cele din urmă totul va fi bine, dacă nu este bine, atunci citim evacuarea și corectăm dependențele. Nu am avut probleme.

    În această etapă, puteți adăuga deja serverul la consola serverului și ar trebui să fie vizibil.

    Pentru a porni, reporni, opri serviciul server 1C:Enterprise, poți folosi următoarele comenzi:

    # /etc/init.d/srv1cv83 start # /etc/init.d/srv1cv83 restart # /etc/init.d/srv1cv83 stop

    Dacă trebuie să instalați driverul HASP, puteți citi cum se face acest lucru în articol.

    Instalarea PostgreSQL

    Cu PostgreSQL, nu totul este atât de simplu, înainte de aceasta a existat versiunea 9.4 distribuită de 1C, distribuția avea toate pachetele, iar pentru a evita defecțiuni, versiunea a fost remediată folosind apt. Dar în 9.6, nu toate pachetele trebuie să fie instalate din depozitul nativ cu versiunea PostgreSQL și componentele dependente retrogradate la cea necesară.

    Nu prea mi-a plăcut această cale, pe Internet și pe un program de afiliat am dat peste PostgreSQL distribuit de Postgres Professional și am decis să-l instalez. Această companie are propriile produse numite Postgre Pro pentru clienții corporativi, dar PostgreSQL este suficient pentru nevoile mele, este distribuit sub .

    Conform instrucțiunilor, conectați depozitul, adăugați o cheie și instalați PostgreSQL

    # sh -c "echo "deb http://1c.postgrespro.ru/deb/ $(lsb_release -cs) main" > /etc/apt/sources.list.d/postgrespro-1c.list" # wget -- liniștit -O - http://1c.postgrespro.ru/keys/GPG-KEY-POSTGRESPRO-1C | apt-key add - && apt-get update # apt-get install postgresql-pro-1c-9.6

    Un cluster este creat automat în timpul instalării principal, trebuie doar să faci câteva ajustări. Pentru a vă conecta, deschideți fișierul / etc/postgresql/9.6/main/pg_hba.conf

    # nano /etc/postgresql/9.6/main/pg_hba.conf

    găsiți linia

    Local toți colegii postgres

    si schimba in egal pe încredere

    # psql -U postgres -d template1 -c „ALTERAȚI PAROLA postgres de utilizator” Parolă""

    în loc de Parolă scrieți parola necesară.

    Tot ce rămâne este să reporniți serviciul și vă puteți conecta la serverul PostgreSQL folosind pgAdmin.

    Pentru a porni, reporni, opri serviciul server PostgreSQL, poți folosi următoarele comenzi:

    # /etc/init.d/postgresql start # /etc/init.d/postgresql restart # /etc/init.d/postgresql stop

    Dacă ați făcut totul și serverul tot nu funcționează, atunci primul lucru pe care trebuie să-l faceți este să verificați localizarea. Dacă este instalată o localizare greșită, atunci trebuie să recreați mai jos clusterul, comenzile și rezultatul execuției

    # pg_dropcluster --stop 9.6 main Redirecționarea solicitării de oprire către systemctl # pg_createcluster --locale ru_RU.UTF-8 9.6 main Crearea unui cluster nou 9.6/main ... config /etc/postgresql/9.6/main data /var/lib/postgresql/ 9.6/locale principale ru_RU.UTF-8 socket /var/run/postgresql portul 5432

    Verificarea rezultatului

    Acum puteți merge la consola serverului pentru a adăuga securitatea informațiilor și a verifica funcționarea.

    Vom instala un ansamblu de la compania Postgres Professional. Pe pagina cu versiunea pentru 1C:Enterprise vom găsi informații despre instalarea celei mai recente versiuni de PostgreSQL pe CentOS 7.

    Să conectăm depozitele și să instalăm PostgreSQL 9.6:

    Sudo rpm -ivh http://1c.postgrespro.ru/keys/postgrespro-1c-centos96.noarch.rpm sudo yum makecache sudo yum install postgresql-pro-1c-9.6

    Configurare de bază PostgreSQL

    Inițializam bazele de date de servicii cu localizare în limba rusă:

    Su postgres /usr/pgsql-9.6/bin/initdb -D /var/lib/pgsql/9.6/data --locale=ru_RU.UTF-8 exit service postgresql-9.6 initdb

    Porniți serviciul PostgreSQL și adăugați-l la pornire:

    Systemctl enable postgresql-9.6 systemctl start postgresql-9.6 systemctl status postgresql-9.6

    Am stabilit o parolă pentru utilizatorul postgres pentru a se putea conecta la server de la distanță:

    Su - postgres psql ALTER UTILIZATOR postgres CU PAROLA CRIPTATA "parola ta"; \q ieșire

    Mcedit /var/lib/pgsql/9.6/data/pg_hba.conf

    în fișierul care se deschide, decomentați și modificați liniile:

    găzduiește toate ident. 127.0.0.1/32 pe găzduiește toate toate 127.0.0.1/32 md5

    găzduiește toate ident. 0.0.0.0/0 pe găzduiește toate 0.0.0.0/0 md5

    Optimizarea setărilor PostgreSQL (postgresql.conf) pentru 1C:Enterprise

    Aici vor fi setările pentru PostgreSQL care rulează într-o mașină virtuală ESXi 6.5.

    Resurse alocate pentru VM:

    procesor - 8 vCPU;

    memorie - 48 GB;

    disc pentru OS - 50 GB pe LUN hardware RAID1 de la SAS HDD;

    disc pentru baza de date - 170 GB pe software-ul RAID1 de la SSD

    disc pentru jurnale - 100 GB pe software-ul RAID1 de pe SSD

    Pentru a edita setările, executați comanda:

    Mcedit /var/lib/pgsql/9.6/data/postgresql.conf

    Parametrii comentați pe care îi vom modifica trebuie activați.

    CPU

    autovacuum_max_workers = 4

    autovacuum_max_workers = NCores/4..2 dar nu mai puțin de 4

    Numărul de procese de autovacuum. Regula generală este că cu cât sunt mai multe cereri de scriere, cu atât mai multe procese. Pe o bază de date numai în citire, un proces este suficient.

    ssl=off

    Dezactivați criptarea. Pentru centrele de date securizate, criptarea este lipsită de sens, dar duce la o încărcare crescută a procesorului

    Memorie

    shared_buffers = 12 GB

    shared_buffers = RAM/4

    Cantitatea de memorie alocată de PgSQL pentru memoria cache a paginii partajate. Această memorie este partajată între toate procesele PgSQL. Sistemul de operare însuși memorează în cache datele, deci nu este nevoie să alocați toată memoria RAM disponibilă în cache.

    temp_buffers = 256MB

    Numărul maxim de pagini pentru tabelele temporare. Aceste. aceasta este limita superioară a dimensiunii tabelelor temporare în fiecare sesiune.

    work_mem = 64MB

    work_mem = RAM/32..64 sau 32MB..128MB

    Limită de memorie pentru procesarea unei cereri. Această memorie este individuală pentru fiecare sesiune. Teoretic, memoria maximă necesară este egală cu max_connections * work_mem, în practică acest lucru nu se întâmplă deoarece majoritatea sesiunilor sunt aproape întotdeauna în așteptare. Această valoare de consiliere este utilizată de optimizator: încearcă să prezică dimensiunea memoriei necesare pentru interogare, iar dacă această valoare este mai mare decât work_mem, îi spune executorului să creeze imediat un tabel temporar. work_mem nu este o limită în sensul deplin: optimizatorul poate rata, iar cererea va ocupa mai multă memorie, poate de multe ori mai multă. Această valoare poate fi redusă prin monitorizarea numărului de fișiere temporare create:

    maintenance_work_mem = 2GB

    maintenance_work_mem = RAM/16..32 sau work_mem * 4 sau 256MB..4GB

    Limită de memorie pentru sarcini de întreținere, cum ar fi colectarea de statistici (ANALYZE), colectarea gunoiului (VACUUM), crearea de indexuri (CREATE INDEX) și adăugarea de chei străine. Mărimea memoriei alocată pentru aceste operațiuni ar trebui să fie comparabilă cu dimensiunea fizică a celui mai mare index de pe disc.

    efectiv_cache_size = 36 GB

    effective_cache_size = RAM - shared_buffers

    Estimarea dimensiunii memoriei cache a sistemului de fișiere. Mărirea parametrului crește înclinația sistemului de a selecta planuri IndexScan. Și asta e bine.

    Discuri

    effective_io_concurrency = 5

    O estimare a solicitărilor simultane către un sistem de discuri pe care acesta le poate deservi la un moment dat. Pentru un singur disc = 1, pentru RAID - 2 sau mai mult.

    cost_pagină_aleatorie = 1,3

    random_page_cost = 1.5-2.0 pentru RAID, 1.1-1.3 pentru SSD

    Costul citirii unei pagini aleatorii (implicit 4). Cu cât timpul de căutare al sistemului de discuri este mai mic, cu atât acest parametru ar trebui să fie mai mic (dar > 1,0). O valoare a parametrului excesiv de mare crește tendința PgSQL de a selecta planuri care scanează întregul tabel (PgSQL consideră că este mai ieftin să citească întregul tabel secvenţial decât să citească aleatoriu indexul). Și asta e rău.

    autovacuum=pornit

    Pornirea aspiratorului automat.

    autovacuum_aptime = 20s

    Timpul de somn al procesului de autovacuum. O valoare prea mare va duce la faptul că tabelele nu vor avea timp să aspire și, ca urmare, balonarea și dimensiunea tabelelor și indicilor vor crește. O valoare mică va duce la încălzire inutilă.

    bgwriter_delay = 20 ms

    Timp de repaus între ciclurile de scriere pe disc ale procesului de scriere în fundal. Acest proces este responsabil pentru sincronizarea paginilor situate în shared_buffers cu discul. O valoare prea mare pentru acest parametru va crește sarcina asupra procesului punctului de control și a proceselor care deservesc sesiunile (backend). O valoare mică va duce la încărcarea completă a unuia dintre nuclee.

    bgwriter_lru_multiplier = 4,0

    bgwriter_lru_maxpages = 400

    Opțiuni care controlează intensitatea înregistrării procesului de înregistrare în fundal. Într-un ciclu, bgwriter nu scrie mai mult decât ceea ce a fost scris în ultimul ciclu, înmulțit cu bgwriter_lru_multiplier, dar nu mai mult decât bgwriter_lru_maxpages.

    synchronous_commit = dezactivat

    Dezactivați sincronizarea discului în momentul comiterii. Creează riscul de a pierde ultimele tranzacții (în 0,5-1 secunde), dar garantează integritatea bazei de date, nu există lacune în lanțul de commit; Dar crește semnificativ productivitatea.

    wal_keep_segments = 256

    wal_keep_segments = 32..256

    Numărul maxim de segmente WAL între puncte de control. Punctele de control prea frecvente duc la o încărcare semnificativă de scriere a subsistemului de disc. Fiecare segment are o dimensiune de 16 MB

    wal_buffers = 16 MB

    Cantitatea de memorie partajată care va fi utilizată pentru a stoca datele WAL care nu sunt încă scrise pe disc. Valoarea implicită -1 specifică o dimensiune egală cu 1/32 (aproximativ 3%) de , dar nu mai puțin de 64 KB și nu mai mult decât dimensiunea unui singur segment WAL (de obicei 16 MB). Această valoare poate fi setată manual dacă cea selectată automat este prea mică sau mare, dar orice număr pozitiv mai mic de 32 KB va fi tratat ca 32 KB. Acest parametru poate fi setat numai la pornirea serverului.

    Conținutul buffer-urilor WAL este scris pe disc atunci când fiecare tranzacție este comisă, așa că este puțin probabil ca valori foarte mari să ofere beneficii mari. Cu toate acestea, o valoare de cel puțin câțiva megaocteți poate îmbunătăți performanța de scriere pe un server ocupat atunci când mulți clienți efectuează tranzacții simultan. Autotuning, care funcționează la valoarea implicită (-1), selectează valori rezonabile în majoritatea cazurilor.

    default_statistics_target = 1000

    Setează o limită țintă implicită pentru statistici care se aplică coloanelor pentru care ALTER TABLE SET STATISTICS nu a specificat limite individuale. Cu cât valoarea setată este mai mare, cu atât este nevoie de mai mult pentru a rula ANALYZE, dar cu atât calitatea estimărilor programatorului poate fi mai mare. Valoarea implicită pentru acest parametru este 100.

    checkpoint_completion_target = 0,9

    Gradul de „pătajare” a punctului de control. Viteza de înregistrare în timpul punctului de control este ajustată astfel încât timpul punctului de control să fie egal cu timpul scurs de la trecut, înmulțit cu ținta checkpoint_completion_.

    min_wal_size = 4G
    max_wal_size = 8G

    min_wal_size = 512MB .. 4G
    max_wal_size = 2 * min_wal_size

    Dimensiunea minimă și maximă a fișierelor WAL. Similar cu checkpoint_segments

    fsync=on

    Dezactivarea opțiunii duce la creșterea performanței, dar există un risc semnificativ de a pierde toate datele dacă alimentarea este oprită brusc. Atenție: dacă RAID-ul are cache și este în modul write-back, verificați prezența și funcționalitatea bateriei cache a controlerului RAID! În caz contrar, datele scrise în memoria cache RAID se pot pierde atunci când alimentarea este oprită și, prin urmare, PgSQL nu garantează integritatea datelor.

    row_security = dezactivat

    Dezactivarea controlului rezoluției la nivel de înregistrare

    enable_nestloop = dezactivat

    Activează sau dezactivează utilizarea de către planificator a planurilor de îmbinare a buclei imbricate. Nu este posibil să eliminați complet buclele imbricate, dar dacă dezactivați această opțiune, planificatorul nu va folosi această metodă dacă ar putea fi folosite altele. În mod implicit, această setare este activată.

    Încuietori

    max_locks_per_transaction = 256

    Numărul maxim de blocări de index/tabel într-o singură tranzacție

    Setări pentru platforma 1C

    standard_conforming_strings = off

    Permite folosirea caracterului \ pentru evadare

    escape_string_warning = dezactivat

    Nu avertizați despre utilizarea \ pentru evadare

    Setări de securitate

    Să ne asigurăm că serverul PostgreSQL este vizibil numai pentru serverul 1C: Enterprise instalat pe aceeași mașină.

    listen_addresses = 'localhost'

    Dacă serverul 1C: Enterprise este instalat pe o altă mașină sau este nevoie să vă conectați la serverul DBMS folosind snap-in-ul PGAdmin, atunci localhost trebuie să specificați adresa acestei mașini.

    Stocarea bazei de date

    PostgreSQL, ca aproape orice SGBD, este esențial pentru subsistemul disc, prin urmare, pentru a crește performanța SGBD-ului, vom plasa sistemul PostgreSQL, jurnalele și bazele de date în sine pe diferite discuri.

    Oprirea serverului

    Systemctl opri postgresql-9.6

    Transferăm jurnalele pe un SSD de 120 GB:

    Mv /var/lib/pgsql/9.6/data/pg_xlog /raid120 mv /var/lib/pgsql/9.6/data/pg_clog /raid120 mv /var/lib/pgsql/9.6/data/pg_log /raid120

    Ln -s /raid120/pg_xlog /var/lib/pgsql/9.6/data/pg_xlog ln -s /raid120/pg_clog /var/lib/pgsql/9.6/data/pg_clog ln -s /raid120/pg_log /var/lib/ pgsql/9.6/data/pg_log

    Vom transfera și directorul cu bazele de date:

    Mv /var/lib/pgsql/9.6/data/base /raid200

    Ln -s /raid200/base /var/lib/pgsql/9.6/data/base

    Să pornim serverul și să-i verificăm starea

    Systemctl start postgresql-9.6 starea systemctl postgresql-9.6